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