Class: RailsPerformance::SystemMonitor::CPULoad

Inherits:
ResourceChart
  • Object
show all
Defined in:
lib/rails_performance/system_monitor/resource_chart.rb

Instance Attribute Summary

Attributes inherited from ResourceChart

#description, #key, #legend, #server, #subtitle, #type

Instance Method Summary collapse

Methods inherited from ResourceChart

#data, #id, #signal

Constructor Details

#initialize(server) ⇒ CPULoad

Returns a new instance of CPULoad.



23
24
25
26
27
28
29
30
31
32
# File 'lib/rails_performance/system_monitor/resource_chart.rb', line 23

def initialize server
  super(
    server:,
    key: :cpu,
    type: "Percentage",
    subtitle: "CPU",
    description: "CPU load average (1 min), average per 1 minute",
    legend: "CPU",
  )
end

Instance Method Details

#format(measurement) ⇒ Object



34
35
36
# File 'lib/rails_performance/system_monitor/resource_chart.rb', line 34

def format measurement
  measurement["one_min"].to_f.round(2)
end

#measureObject



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/rails_performance/system_monitor/resource_chart.rb', line 38

def measure
  load_averages = Sys::CPU.load_avg
  {
    one_min: load_averages[0],
    five_min: load_averages[1],
    fifteen_min: load_averages[2]
  }
rescue => e
  ::Rails.logger.error "Error fetching CPU usage: #{e.message}"
  {one_min: 0.0, five_min: 0.0, fifteen_min: 0.0}
end