lib/kldockeragent/helper.rb in kldockeragent-0.5.9 vs lib/kldockeragent/helper.rb in kldockeragent-0.6.1
- old
+ new
@@ -118,34 +118,79 @@
end
def KL.Request_getDockerListAllApplications
filter = '_klac'
apps = Array.new
- query = `docker ps --filter="name=#{filter}" --format="{{.ID}}::{{.Names}}::{{.Status}}::{{.Image}}"`
+ query = `docker ps --format="{{.ID}}::{{.Names}}::{{.Status}}::{{.Image}}"`
query.gsub!(/\r\n?/, "\n")
query.each_line do |line|
data = line.split('::')
apps.push({
'id' => data[0],
- 'name' => data[1].gsub(filter,""),
+ 'name' => data[1],
'status'=>data[2],
- 'image'=>data[3].gsub("\n","")
+ 'image'=>data[3].gsub("\n",""),
+ 'stats'=>KL.getDockerConfigData(data[0]),
+ 'application' => KL.getApplicationInfo(data[1], filter)
})
end
return apps
end
+ def KL.getDockerConfigData(container)
+ query = `docker stats --no-stream #{container}`
+ query.gsub!(/\r\n?/, "\n")
+ keys = Array.new
+ values = Array.new
+ out = '{'
+ i = 0
+ query.each_line do |line|
+ data = line.split(' ')
+ data.each do |value|
+ if (value.strip != '')
+ if (i == 0)
+ keys.push(value.strip)
+ else
+ values.push(value.strip)
+ end
+ end
+ end
+ i = i + 1
+ end
+ i = 0
+ keys.each do |key|
+ if (i > 0)
+ out = out + ','
+ end
+ out = out + "\"#{key}\":\"#{values[i]}\""
+ i = i + 1
+ end
+ out = out + '}'
+
+ return JSON.parse(out)
+ end
+
+ def KL.removeEmptyObjects(json)
+ return json.gsub('{}','""')
+ end
+
+ def KL.getApplicationInfo(name, filter)
+ output = ""
+ if (name.include? filter)
+ output = name.gsub(filter,'')
+ end
+ return output
+ end
+
def KL.Request_getSystemInfo
usw = Usagewatch
info = {}
if KL::Agent.is_linux
info['os'] = 'linux'
info['diskused'] = usw.uw_diskused.to_s
info['diskused_perc'] = usw.uw_diskused_perc.to_s
info['cpuused'] = usw.uw_cpuused.to_s
info['memused'] = usw.uw_memused.to_s
- #info['cputop'] = usw.uw_cputop
- #info['memtop'] = usw.uw_memtop
else
info['os'] = 'not linux'
end
info
end
\ No newline at end of file