Class: Meter::Backends::Datadog

Inherits:
Statsd show all
Defined in:
lib/meter/backends/datadog.rb

Instance Attribute Summary

Attributes inherited from Udp

#host, #port

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Udp

#initialize, #output_data, #socket

Methods inherited from Base

#emit_metric, #output_data, #supported_metric?

Constructor Details

This class inherits a constructor from Meter::Backends::Udp

Class Method Details

.supported_metricsObject



7
8
9
# File 'lib/meter/backends/datadog.rb', line 7

def self.supported_metrics
  [:counter, :gauge, :timing, :histogram]
end

Instance Method Details

#convert_tags_to_datadog_format(tags = {}) ⇒ Object



17
18
19
# File 'lib/meter/backends/datadog.rb', line 17

def convert_tags_to_datadog_format(tags = {})
  tags.map{|key,val| "#{key}:#{val}"}.join(',')
end

#convert_to_backend_format(metric) ⇒ Object



11
12
13
14
15
# File 'lib/meter/backends/datadog.rb', line 11

def convert_to_backend_format(metric)
  rate = "|@#{metric.sample_rate}" unless metric.sample_rate == 1
  tags = "|##{convert_tags_to_datadog_format(metric.tags)}" unless metric.tags.empty?
  "#{metric.name}:#{metric.value}|#{statsd_type(metric)}#{rate}#{tags}"
end

#statsd_type(metric) ⇒ Object



21
22
23
24
# File 'lib/meter/backends/datadog.rb', line 21

def statsd_type(metric)
  types = {counter: 'c', gauge: 'g', timing: 'ms', histogram: 'h'}
  types[metric.type]
end