class MagicPipe::Metrics

Attributes

client[R]

Public Class Methods

new(config) click to toggle source
# File lib/magic_pipe/metrics.rb, line 3
def initialize(config)
  @client = config.metrics_client
  @default_tags = build_default_tags(config)
end

Public Instance Methods

increment(metric, tags: []) click to toggle source
# File lib/magic_pipe/metrics.rb, line 10
def increment(metric, tags: [])
  @client.increment(metric, tags: all_tags(tags))
end

Private Instance Methods

all_tags(list) click to toggle source
# File lib/magic_pipe/metrics.rb, line 18
def all_tags(list)
  @default_tags + list
end
build_default_tags(config) click to toggle source
# File lib/magic_pipe/metrics.rb, line 22
def build_default_tags(config)
  list = [
    "producer:#{config.producer_name.to_s.gsub(" ", "_")}",
    "pipe_instance:#{config.client_name.to_s}",
    "loader:#{config.loader.to_s}",
    "codec:#{config.codec.to_s}",
    "transport:#{transport_tag(config)}",
    "sender:#{config.sender.to_s}",
  ]
end
method_missing(name, *args, &block) click to toggle source
# File lib/magic_pipe/metrics.rb, line 46
def method_missing(name, *args, &block)
  client.public_send(name, *args, &block)
end
respond_to_missing?(name, include_all) click to toggle source
# File lib/magic_pipe/metrics.rb, line 50
def respond_to_missing?(name, include_all)
  client.respond_to?(name, include_all)
end
sanitize_tag_string(value) click to toggle source
# File lib/magic_pipe/metrics.rb, line 42
def sanitize_tag_string(value)
  value.to_s.tr(":. /", "")
end
transport_tag(config) click to toggle source
# File lib/magic_pipe/metrics.rb, line 33
def transport_tag(config)
  t = config.transport
  if t.is_a?(Array)
    "multi_" + t.map { |s| sanitize_tag_string(s) }.join("-")
  else
    t.to_s
  end
end