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