Class: Deimos::Metrics::Datadog

Inherits:
Provider
  • Object
show all
Defined in:
lib/deimos/metrics/datadog.rb

Overview

A Metrics wrapper class for Datadog.

Instance Method Summary collapse

Constructor Details

#initialize(config, logger) ⇒ Datadog

:nodoc:



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/deimos/metrics/datadog.rb', line 10

def initialize(config, logger)
  raise 'Metrics config must specify host_ip' if config[:host_ip].nil?
  raise 'Metrics config must specify host_port' if config[:host_port].nil?
  raise 'Metrics config must specify namespace' if config[:namespace].nil?

  logger.info("DatadogMetricsProvider configured with: #{config}")
  @client = ::Datadog::Statsd.new(
    config[:host_ip],
    config[:host_port]
  )
  @client.tags = config[:tags]
  @client.namespace = config[:namespace]
end

Instance Method Details

#gauge(metric_name, count, options = {}) ⇒ Object

:nodoc:



30
31
32
# File 'lib/deimos/metrics/datadog.rb', line 30

def gauge(metric_name, count, options={})
  @client.gauge(metric_name, count, options)
end

#histogram(metric_name, count, options = {}) ⇒ Object

:nodoc:



35
36
37
# File 'lib/deimos/metrics/datadog.rb', line 35

def histogram(metric_name, count, options={})
  @client.histogram(metric_name, count, options)
end

#increment(metric_name, options = {}) ⇒ Object

:nodoc:



25
26
27
# File 'lib/deimos/metrics/datadog.rb', line 25

def increment(metric_name, options={})
  @client.increment(metric_name, options)
end

#time(metric_name, options = {}) ⇒ Object

:nodoc:



40
41
42
43
44
# File 'lib/deimos/metrics/datadog.rb', line 40

def time(metric_name, options={})
  @client.time(metric_name, options) do
    yield
  end
end