class Yabeda::Datadog::Adapter

DataDog adapter.

Sends yabeda metrics as custom metrics to DataDog. docs.datadoghq.com/integrations/ruby/

Attributes

worker[R]

Public Class Methods

new(worker:) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 17
def initialize(worker:)
  @worker = worker
end

Public Instance Methods

perform_counter_increment!(counter, tags, increment) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 25
def perform_counter_increment!(counter, tags, increment)
  metric = Metric.new(counter, "count")
  tags = Tags.build(tags)
  enqueue_send(metric, increment, tags)
end
perform_gauge_set!(gauge, tags, value) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 35
def perform_gauge_set!(gauge, tags, value)
  metric = Metric.new(gauge, "gauge")
  tags = Tags.build(tags)
  enqueue_send(metric, value, tags)
end
perform_histogram_measure!(historam, tags, value) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 47
def perform_histogram_measure!(historam, tags, value)
  metric = Metric.new(historam, "histogram")
  tags = Tags.build(tags)
  enqueue_send(metric, value, tags)
end
register_counter!(counter) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 21
def register_counter!(counter)
  enqueue_register(Metric.new(counter, "rate"))
end
register_gauge!(gauge) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 31
def register_gauge!(gauge)
  enqueue_register(Metric.new(gauge, "gauge"))
end
register_histogram!(histogram) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 41
def register_histogram!(histogram)
  Metric.histogram_metrics(histogram).map do |historgam_sub_metric|
    enqueue_register(historgam_sub_metric)
  end
end
stop() click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 53
def stop
  worker.stop
end

Private Instance Methods

enqueue_register(metric) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 61
def enqueue_register(metric)
  Logging.instance.debug("enqueue REGISTER action for metric #{metric.name}")
  worker.enqueue(:REGISTER, metric: metric)
end
enqueue_send(metric, value, tags) click to toggle source
# File lib/yabeda/datadog/adapter.rb, line 66
def enqueue_send(metric, value, tags)
  Logging.instance.debug("enqueue SEND action for metric #{metric.name}")
  worker.enqueue(:SEND, metric: metric, value: value, tags: tags)
end