class Rmetrics::Influx
Handles the comunnication to Influx
DB
Public Class Methods
new(options = {})
click to toggle source
# File lib/rmetrics/influx.rb, line 6 def initialize(options = {}) @influx_client = InfluxDB::Client.new(options) end
Public Instance Methods
write_data(table, data)
click to toggle source
# File lib/rmetrics/influx.rb, line 10 def write_data(table, data) @influx_client.write_point(table, organize_event(data)) end
Private Instance Methods
adjust_values(act, payload)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/rmetrics/influx.rb, line 17 def adjust_values(act, payload) payload.each do |key, value| case value when Hash act[:tags].merge!(value.select { |_, v| v.is_a?(String) }) when Numeric, Integer act[:values][key.to_sym] = value.to_f when String, TrueClass, FalseClass act[:values][key.to_sym] = value when Symbol act[:values][key.to_sym] = value.to_s else next end end end
organize_event(event)
click to toggle source
rubocop:enable Metrics/MethodLength
# File lib/rmetrics/influx.rb, line 35 def organize_event(event) act = { values: { duration: event.duration }, tags: { name: event.name } } adjust_values(act, event.payload) act end