class Fluent::Plugin::NodeExporter::CpufreqMetricsCollector
Public Class Methods
new(config={})
click to toggle source
Calls superclass method
Fluent::Plugin::NodeExporter::MetricsCollector::new
# File lib/fluent/plugin/node_exporter/cpufreq_collector.rb, line 25 def initialize(config={}) super(config) if Fluent.linux? @frequency_hertz = CMetrics::Gauge.new @frequency_hertz.create("node", "cpu", "frequency_hertz", "Current cpu thread frequency in hertz.", ["cpu"]) @frequency_max_hertz = CMetrics::Gauge.new @frequency_max_hertz.create("node", "cpu", "frequency_max_hertz", "Maximum cpu thread frequency in hertz.", ["cpu"]) @frequency_min_hertz = CMetrics::Gauge.new @frequency_min_hertz.create("node", "cpu", "frequency_min_hertz", "Minimum cpu thread frequency in hertz.", ["cpu"]) @scaling_frequency_hertz = CMetrics::Gauge.new @scaling_frequency_hertz.create("node", "cpu", "scaling_frequency_hertz", "Current scaled CPU thread frequency in hertz.", ["cpu"]) @scaling_frequency_max_hertz = CMetrics::Gauge.new @scaling_frequency_max_hertz.create("node", "cpu", "scaling_frequency_max_hertz", "Maximum scaled CPU thread frequency in hertz.", ["cpu"]) @scaling_frequency_min_hertz = CMetrics::Gauge.new @scaling_frequency_min_hertz.create("node", "cpu", "scaling_frequency_min_hertz", "Minimum scaled CPU thread frequency in hertz.", ["cpu"]) end end
Public Instance Methods
cmetrics()
click to toggle source
# File lib/fluent/plugin/node_exporter/cpufreq_collector.rb, line 84 def cmetrics { frequency_hertz: @frequency_hertz, frequency_max_hertz: @frequency_max_hertz, frequency_min_hertz: @frequency_min_hertz, scaling_frequency_hertz: @scaling_frequency_hertz, scaling_frequency_max_hertz: @scaling_frequency_max_hertz, scaling_frequency_min_hertz: @scaling_frequency_min_hertz } end
cpufreq_update()
click to toggle source
# File lib/fluent/plugin/node_exporter/cpufreq_collector.rb, line 64 def cpufreq_update scan_sysfs_path("devices/system/cpu/cpu[0-9]*").each do |path| next unless Dir.exist?(File.join(path, "cpufreq")) cpuinfo_cur_freq_path = File.join(path, "cpufreq", "cpuinfo_cur_freq") cpuinfo_max_freq_path = File.join(path, "cpufreq", "cpuinfo_max_freq") cpuinfo_min_freq_path = File.join(path, "cpufreq", "cpuinfo_min_freq") scaling_cur_freq_path = File.join(path, "cpufreq", "scaling_cur_freq") scaling_max_freq_path = File.join(path, "cpufreq", "scaling_max_freq") scaling_min_freq_path = File.join(path, "cpufreq", "scaling_min_freq") cpu_id = File.basename(path).sub(/cpu(\d+)/, "\\1") @frequency_hertz.set(File.read(cpuinfo_cur_freq_path).to_f, [cpu_id]) if File.exist?(cpuinfo_cur_freq_path) @frequency_max_hertz.set(File.read(cpuinfo_max_freq_path).to_f, [cpu_id]) if File.exist?(cpuinfo_max_freq_path) @frequency_min_hertz.set(File.read(cpuinfo_min_freq_path).to_f, [cpu_id]) if File.exist?(cpuinfo_min_freq_path) @scaling_frequency_hertz.set(File.read(scaling_cur_freq_path).to_f, [cpu_id]) if File.exist?(scaling_cur_freq_path) @scaling_frequency_max_hertz.set(File.read(scaling_max_freq_path).to_f, [cpu_id]) if File.exist?(scaling_max_freq_path) @scaling_frequency_min_hertz.set(File.read(scaling_min_freq_path).to_f, [cpu_id]) if File.exist?(scaling_min_freq_path) end end
cpuinfo_cur_freq_exist?()
click to toggle source
# File lib/fluent/plugin/node_exporter/cpufreq_collector.rb, line 59 def cpuinfo_cur_freq_exist? path = File.join(@sysfs_path, "devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq") File.exist?(path) end
run()
click to toggle source
# File lib/fluent/plugin/node_exporter/cpufreq_collector.rb, line 55 def run cpufreq_update end