class DockerBoss::Module::InfluxDB::Worker
Public Class Methods
new(config)
click to toggle source
# File lib/docker_boss/module/influxdb.rb, line 98 def initialize(config) @config = config end
Public Instance Methods
blkio_sample(id, type, file, key_prefix) { |k, v| ... }
click to toggle source
# File lib/docker_boss/module/influxdb.rb, line 142 def blkio_sample(id, type, file, key_prefix) return to_enum(:blkio_sample, id, type, file, key_prefix) unless block_given? data = {} File.readlines(build_path(id, type, file)).each do |line| (maj_min,k,v) = line.chomp.split(/\s+/, 3) if maj_min != 'Total' data["#{key_prefix}_#{k.downcase}"] ||= 0 data["#{key_prefix}_#{k.downcase}"] += v.to_i end end data.each { |k,v| yield k, v } end
blkio_v_sample(id, type, file, key) { |k, v| ... }
click to toggle source
# File lib/docker_boss/module/influxdb.rb, line 157 def blkio_v_sample(id, type, file, key) return to_enum(:blkio_v_sample, id, type, file, key) unless block_given? data = {} File.readlines(build_path(id, type, file)).each do |line| (maj_min,v) = line.chomp.split(/\s+/, 2) data[key] ||= 0 data[key] += v.to_i end data.each { |k,v| yield k, v } end
build_path(id, type, file)
click to toggle source
# File lib/docker_boss/module/influxdb.rb, line 102 def build_path(id, type, file) if @config['docker_cg'] "#{@config['cgroup_path']}/#{type}/docker/#{id}/#{file}" else "#{@config['cgroup_path']}/#{type}/system.slice/docker-#{id}.scope/#{file}" end end
kv_sample(id, type, file, key_prefix) { |"#{key_prefix}_#{downcase}", to_i| ... }
click to toggle source
# File lib/docker_boss/module/influxdb.rb, line 133 def kv_sample(id, type, file, key_prefix) return to_enum(:kv_sample, id, type, file, key_prefix) unless block_given? File.readlines(build_path(id, type, file)).each do |line| (k,v) = line.chomp.split(/\s+/, 2) yield "#{key_prefix}_#{k.downcase}", v.to_i end end
sample_container(container)
click to toggle source
# File lib/docker_boss/module/influxdb.rb, line 110 def sample_container(container) time_now = Time.now.to_i data = { time: time_now } kv_sample(container[:id], 'memory', 'memory.stat', 'memory') { |k,v| data[k] = v } kv_sample(container[:id], 'cpuacct', 'cpuacct.stat', 'cpuacct') { |k,v| data[k] = v } ['blkio.io_serviced', 'blkio.io_service_bytes', 'blkio.io_wait_time', 'blkio.io_service_time', 'blkio.io_queued'].each do |f| blkio_sample(container[:id], 'blkio', f, f.gsub(/\./, '_')) { |k,v| data[k] = v } end ['blkio.sectors'].each do |f| blkio_v_sample(container[:id], 'blkio', f, f.gsub(/\./, '_')) { |k,v| data[k] = v } end name = container[:name].empty? ? container[:id] : container[:name] { name: "#{@config['prefix']}#{name}", columns: data.keys, points: [ data.values ] } end