Class: Pgbus::Metrics::Backends::Statsd
- Inherits:
-
Pgbus::Metrics::Backend
- Object
- Pgbus::Metrics::Backend
- Pgbus::Metrics::Backends::Statsd
- 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
- #gauge(name, value, tags = {}) ⇒ Object
- #histogram(name, value, tags = {}) ⇒ Object
- #increment(name, value = 1, tags = {}) ⇒ Object
-
#initialize(host: "127.0.0.1", port: 8125, socket: nil) ⇒ Statsd
constructor
A new instance of Statsd.
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, = {}) emit(name, value, "g", ) end |
#histogram(name, value, tags = {}) ⇒ Object
34 35 36 |
# File 'lib/pgbus/metrics/backends/statsd.rb', line 34 def histogram(name, value, = {}) emit(name, value, "ms", ) end |
#increment(name, value = 1, tags = {}) ⇒ Object
26 27 28 |
# File 'lib/pgbus/metrics/backends/statsd.rb', line 26 def increment(name, value = 1, = {}) emit(name, value, "c", ) end |