Class: Attio::Observability::Metrics::Datadog

Inherits:
Object
  • Object
show all
Defined in:
lib/attio/observability.rb

Overview

Datadog metrics

Since:

  • 1.0.0

Instance Method Summary collapse

Constructor Details

#initializeDatadog

Returns a new instance of Datadog.

Since:

  • 1.0.0



248
249
250
251
252
253
# File 'lib/attio/observability.rb', line 248

def initialize
  require "datadog/statsd"
  @client = ::Datadog::Statsd.new("localhost", 8125)
rescue LoadError
  raise "Please add 'dogstatsd-ruby' to your Gemfile"
end

Instance Method Details

#format_tags(tags) ⇒ Object (private)

Since:

  • 1.0.0



267
268
269
# File 'lib/attio/observability.rb', line 267

private def format_tags(tags)
  tags.map { |k, v| "#{k}:#{v}" }
end

#gauge(metric, value, tags: {}) ⇒ Object

Since:

  • 1.0.0



259
260
261
# File 'lib/attio/observability.rb', line 259

def gauge(metric, value, tags: {})
  @client.gauge(metric, value, tags: format_tags(tags))
end

#histogram(metric, value, tags: {}) ⇒ Object

Since:

  • 1.0.0



263
264
265
# File 'lib/attio/observability.rb', line 263

def histogram(metric, value, tags: {})
  @client.histogram(metric, value, tags: format_tags(tags))
end

#increment(metric, tags: {}) ⇒ Object

Since:

  • 1.0.0



255
256
257
# File 'lib/attio/observability.rb', line 255

def increment(metric, tags: {})
  @client.increment(metric, tags: format_tags(tags))
end