class MetricsCapacitor::Model::Metric
Public Class Methods
new(data = {})
click to toggle source
# File lib/metrics-capacitor/model/metric.rb, line 8 def initialize(data = {}) @metric = data if data.class == Hash @metric ||= JSON.parse(data, symbolize_names: true) end
Public Instance Methods
name()
click to toggle source
# File lib/metrics-capacitor/model/metric.rb, line 29 def name @metric[:name].to_s end
timestamp(scale = :ms)
click to toggle source
# File lib/metrics-capacitor/model/metric.rb, line 51 def timestamp(scale = :ms) m = case scale when :ms 1000.0 when :us 1_000_000.0 when :ns 1_000_000_000.0 else 1.0 end return (Time.now.to_f * m).to_i.to_s unless @metric[:timestamp] (Time.at(@metric[:timestamp]).to_f * m).to_i.to_s end
to_elastic()
click to toggle source
# File lib/metrics-capacitor/model/metric.rb, line 13 def to_elastic { index: { data: { :@name => name, :@timestamp => timestamp(:ms), :@tags => tags, :@values => values } } } end
to_redis()
click to toggle source
# File lib/metrics-capacitor/model/metric.rb, line 25 def to_redis @metric.to_json end
values()
click to toggle source
# File lib/metrics-capacitor/model/metric.rb, line 38 def values case @metric[:values] when Hash return @metric[:values] when Integer return { value: @metric[:values].to_f } when Float return { value: @metric[:values] } else return { value: 0.0 } end end