class Metrux::Commands::Base
Constants
- DEFAULT_TAGS
Attributes
config[R]
connection[R]
logger[R]
prefix[R]
Public Class Methods
new(config, connection)
click to toggle source
# File lib/metrux/commands/base.rb, line 11 def initialize(config, connection) @config = config @connection = connection @logger = config.logger @prefix = config.prefix end
Protected Instance Methods
format_data(value, params)
click to toggle source
# File lib/metrux/commands/base.rb, line 38 def format_data(value, params) values = value.is_a?(Hash) ? value : { value: value } { values: values, tags: params.fetch(:tags, {}), timestamp: params.fetch(:timestamp, default_timestamp) } end
format_write_options(params)
click to toggle source
# File lib/metrux/commands/base.rb, line 47 def format_write_options(params) params.select { |k, _| [:precision, :retention].include?(k) } end
write(measurement, data, options = {})
click to toggle source
# File lib/metrux/commands/base.rb, line 24 def write(measurement, data, options = {}) precision = options[:precision].presence retention = options[:retention].presence log("Writing #{measurement}") connection.write_point( "#{prefix}/#{measurement}", default_data.deep_merge(data), precision, retention ) true end
Private Instance Methods
default_data()
click to toggle source
# File lib/metrux/commands/base.rb, line 53 def default_data { tags: DEFAULT_TAGS.merge(app_name: app_name, env: env) } end
default_timestamp()
click to toggle source
# File lib/metrux/commands/base.rb, line 57 def default_timestamp (Time.now.utc.to_f * 1_000_000_000).to_i end