telegraf-pressure-stall/telegraf_pressure_stall.cr
2022-08-10 13:23:23 +02:00

16 lines
586 B
Crystal

dir = ENV.fetch("PSI_DIR", "/proc/pressure")
time = Time.local.to_s("%s%9N")
Dir.entries(dir).each do |ressource|
next if File.directory? ressource
File.read_lines("#{dir}/#{ressource}").each do |line|
parts = line.split
type = parts[0]
metrics = parts[1..-1].map{ |part| part.split('=')}.to_h
puts %(pressure_stall_avg,ressource="#{ressource}",type=#{type} avg10=#{metrics["avg10"]},avg60=#{metrics["avg60"]},avg300=#{metrics["avg300"]} #{time})
puts %(pressure_stall_total,ressource="#{ressource}",type=#{type} total=#{metrics["total"]} #{time})
end
end