Class: Pgbus::Metrics::Backends::Statsd

Inherits:
Pgbus::Metrics::Backend show all
Defined in:
lib/pgbus/metrics/backends/statsd.rb

Overview

StatsD backend emitting UDP datagrams in DogStatsD dialect.

increment -> "name:value|c"
gauge     -> "name:value|g"
histogram -> "name:value|ms"

Tags are appended as DogStatsD |#k:v,k:v. No gem dependency — a plain UDPSocket. UDP send is fire-and-forget; any socket error is logged and swallowed so a metrics hiccup never propagates into the producer thread.

Instance Method Summary collapse

Constructor Details

#initialize(host: "127.0.0.1", port: 8125, socket: nil) ⇒ Statsd

Returns a new instance of Statsd.



18
19
20
21
22
23
24
# File 'lib/pgbus/metrics/backends/statsd.rb', line 18

def initialize(host: "127.0.0.1", port: 8125, socket: nil)
  super()
  @host = host
  @port = port
  @socket = socket
  @mutex = Mutex.new
end

Instance Method Details

#gauge(name, value, tags = {}) ⇒ Object



30
31
32
# File 'lib/pgbus/metrics/backends/statsd.rb', line 30

def gauge(name, value, tags = {})
  emit(name, value, "g", tags)
end

#histogram(name, value, tags = {}) ⇒ Object



34
35
36
# File 'lib/pgbus/metrics/backends/statsd.rb', line 34

def histogram(name, value, tags = {})
  emit(name, value, "ms", tags)
end

#increment(name, value = 1, tags = {}) ⇒ Object



26
27
28
# File 'lib/pgbus/metrics/backends/statsd.rb', line 26

def increment(name, value = 1, tags = {})
  emit(name, value, "c", tags)
end