class Metrux::Commands::NoticeError

Constants

ERROR_METER_KEY

Public Instance Methods

execute(error, payload = {}) click to toggle source
# File lib/metrux/commands/notice_error.rb, line 6
def execute(error, payload = {})
  value = build_value(error)
  options = build_options(error, payload)

  write(ERROR_METER_KEY, format_data(value, options))
end

Private Instance Methods

build_options(error, payload) click to toggle source
# File lib/metrux/commands/notice_error.rb, line 19
def build_options(error, payload)
  {}.tap do |options|
    options[:tags] = fetch_tags(error, payload)

    if payload[:timestamp].present?
      options[:timestamp] = payload[:timestamp]
    end
  end
end
build_value(error) click to toggle source
# File lib/metrux/commands/notice_error.rb, line 15
def build_value(error)
  { message: error.message.truncate(100, separator: ' '), value: 1 }
end
fetch_tags(error, payload) click to toggle source
# File lib/metrux/commands/notice_error.rb, line 29
def fetch_tags(error, payload)
  payload
    .reject { |(k, _)| k.to_s == 'timestamp' }
    .each_with_object({}) do |(k, v), with_string_values|
    with_string_values[k] = v.is_a?(String) ? v : v.inspect
  end.merge(error: error.class.to_s)
end