Class: Sidekiq::Middleware::Server::Datadog
- Inherits:
-
Object
- Object
- Sidekiq::Middleware::Server::Datadog
- Defined in:
- lib/sidekiq/middleware/server/datadog.rb
Instance Method Summary collapse
- #call(worker, job, queue) ⇒ Object
-
#initialize(opts = {}) ⇒ Datadog
constructor
Configure and install datadog instrumentation.
Constructor Details
#initialize(opts = {}) ⇒ Datadog
Configure and install datadog instrumentation. Example:
Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add Sidekiq::Middleware::Server::Datadog
end
end
Options:
-
:hostname
- the hostname used for instrumentation, defaults to system hostname, respectsINSTRUMENTATION_HOSTNAME
env variable -
:metric_name
- the metric name (prefix) to use, defaults to “sidekiq.job” -
:tags
- array of custom tags, these can be plain strings or lambda blocks accepting a rack env instance -
:skip_tags
- array of tag names that shouldn’t be emitted -
:statsd_host
- the statsD host, defaults to “localhost”, respectsSTATSD_HOST
env variable -
:statsd_port
- the statsD port, defaults to 8125, respectsSTATSD_PORT
env variable -
:statsd
- custom statsd instance
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/sidekiq/middleware/server/datadog.rb', line 27 def initialize(opts = {}) statsd_host = opts[:statsd_host] || ENV['STATSD_HOST'] || 'localhost' statsd_port = (opts[:statsd_port] || ENV['STATSD_PORT'] || 8125).to_i @metric_name = opts[:metric_name] || 'sidekiq.job' @statsd = opts[:statsd] || ::Datadog::Statsd.new(statsd_host, statsd_port) @tag_builder = Sidekiq::Datadog::TagBuilder.new( opts[:tags], opts[:skip_tags], opts[:hostname], ) end |
Instance Method Details
#call(worker, job, queue) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/sidekiq/middleware/server/datadog.rb', line 40 def call(worker, job, queue, *) start = Time.now clock = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC, :millisecond) begin yield record(worker, job, queue, start, clock) rescue StandardError => e record(worker, job, queue, start, clock, e) raise end end |