class CloudWatchMetrics::Linux::Builder
Public Class Methods
new(dimensions, metrics)
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 6 def initialize(dimensions, metrics) @dimensions_array = [Dimensions.new(InstanceId: MetaData.instance_id)] @dimensions_array << Dimensions.new(dimensions) unless dimensions.empty? @metric_names = metrics.select { |_, v| v }.keys end
Public Instance Methods
build(meminfo, loadavg)
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 13 def build(meminfo, loadavg) @meminfo = meminfo @loadavg = loadavg build_without_dimensions.flat_map do |metric_datum| @dimensions_array.map do |dimensions| metric_datum.merge(dimensions: dimensions.to_cloudwatch) end end end
Private Instance Methods
build_without_dimensions()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 26 def build_without_dimensions @metric_names.map { |key| __send__(key) }.compact end
load_average_15min()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 86 def load_average_15min { metric_name: 'LoadAverage15Min', timestamp: @loadavg.time, value: @loadavg.loadavg15, unit: 'Count', } end
load_average_1min()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 68 def load_average_1min { metric_name: 'LoadAverage1Min', timestamp: @loadavg.time, value: @loadavg.loadavg1, unit: 'Count', } end
load_average_5min()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 77 def load_average_5min { metric_name: 'LoadAverage5Min', timestamp: @loadavg.time, value: @loadavg.loadavg5, unit: 'Count', } end
memory_used()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 30 def memory_used { metric_name: 'MemoryUsed', timestamp: @meminfo.time, value: @meminfo.mem_used / 1024, unit: 'Megabytes', } end
memory_utilization()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 39 def memory_utilization { metric_name: 'MemoryUtilization', timestamp: @meminfo.time, value: (@meminfo.mem_util * 100).round(3), unit: 'Percent', } end
swap_used()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 48 def swap_used return unless @meminfo.swap? { metric_name: 'SwapUsed', timestamp: @meminfo.time, value: @meminfo.swap_used / 1024, unit: 'Megabytes', } end
swap_utilization()
click to toggle source
# File lib/cloud_watch_metrics/linux/builder.rb, line 58 def swap_utilization return unless @meminfo.swap? { metric_name: 'SwapUtilization', timestamp: @meminfo.time, value: (@meminfo.swap_util * 100).round(3), unit: 'Percent', } end