Class: Attio::Observability::Metrics::StatsD

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

Overview

StatsD metrics

Since:

  • 1.0.0

Instance Method Summary collapse

Constructor Details

#initializeStatsD

Returns a new instance of StatsD.

Since:

  • 1.0.0



222
223
224
225
226
227
# File 'lib/attio/observability.rb', line 222

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

Instance Method Details

#format_tags(tags) ⇒ Object (private)

Since:

  • 1.0.0



241
242
243
# File 'lib/attio/observability.rb', line 241

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

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

Since:

  • 1.0.0



233
234
235
# File 'lib/attio/observability.rb', line 233

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

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

Since:

  • 1.0.0



237
238
239
# File 'lib/attio/observability.rb', line 237

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

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

Since:

  • 1.0.0



229
230
231
# File 'lib/attio/observability.rb', line 229

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