Module: SolidQueueGuard::Metrics::DogstatsdClient
- Defined in:
- lib/solid_queue_guard/metrics/dogstatsd_client.rb
Overview
Shared Datadog StatsD client for operational gauges/counters. Distinct from Metrics::Statsd (raw UDP export of guard check status).
Defined Under Namespace
Classes: NullStatsd
Class Method Summary collapse
- .available? ⇒ Boolean
- .default_tags ⇒ Object
- .job_tags(job) ⇒ Object
- .process_tags(kind, process) ⇒ Object
- .reset! ⇒ Object
- .service_name ⇒ Object
- .statsd ⇒ Object
Class Method Details
.available? ⇒ Boolean
19 20 21 22 23 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 19 def available? return @available if instance_variable_defined?(:@available) @available = OptionalDependency.require!('datadog/statsd', 'dogstatsd-ruby') end |
.default_tags ⇒ Object
31 32 33 34 35 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 31 def = ["env:#{Rails.env}"] << "service:#{service_name}" if service_name end |
.job_tags(job) ⇒ Object
37 38 39 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 37 def (job) ["job_class:#{job.class.name}", "queue:#{job.queue_name}"] end |
.process_tags(kind, process) ⇒ Object
41 42 43 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 41 def (kind, process) ["kind:#{kind}", "process:#{process.name}"] end |
.reset! ⇒ Object
14 15 16 17 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 14 def reset! @statsd = nil remove_instance_variable(:@available) if instance_variable_defined?(:@available) end |
.service_name ⇒ Object
25 26 27 28 29 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 25 def service_name SolidQueueGuard.config.statsd_service_name.presence || ENV['DD_SERVICE'].presence || ENV['SOLID_QUEUE_GUARD_SERVICE'].presence end |
.statsd ⇒ Object
10 11 12 |
# File 'lib/solid_queue_guard/metrics/dogstatsd_client.rb', line 10 def statsd @statsd ||= build_client end |