Sidekiq StatsD Пометка при выполнении задания - PullRequest
0 голосов
/ 30 мая 2019

Я внедряю публикацию statsd в Sidekiq, и мне удалось это сделать успешно, однако теги, похоже, добавляются только в «глобальные» сообщения statsd. Как вы можете видеть ниже, app: не добавляется к фактическим sidekiq.job сообщениям, оно есть у всех других сообщений. Почему это? Я бы хотел, чтобы тег app присутствовал всегда.

sidekiq.processed:16|g|#app:test-app
sidekiq.enqueued:0|g|#app:test-app
sidekiq.retries:2|g|#app:test-app
sidekiq.dead:0|g|#app:test-app
sidekiq.scheduled:0|g|#app:test-app
sidekiq.busy:0|g|#app:test-app
sidekiq.enqueued.low:0|g|#app:test-app
sidekiq.enqueued.default:0|g|#app:test-app
sidekiq.job:1|c|#host:MacBook-Pro.local,env:development,name:test_cache_job,queue:default,status:ok
sidekiq.job.time:16034|ms|#host:MacBook-Pro.local,env:development,name:test_cache_job,queue:default,status:ok 

Вот как я реализовал это в инициализаторе sidekiq.rb.

Sidekiq::Pro.dogstatsd = ->{ Datadog::Statsd.new(ENV['DD_HOST'], ENV['DD_PORT'], tags: ["app:#{ENV['APP_NAME']}"]) }

Sidekiq.configure_server do |config|
  # Middleware for StatsD
  config.server_middleware do |chain|
    require 'sidekiq/middleware/server/datadog'
    chain.add Sidekiq::Middleware::Server::Datadog
  end

  config.save_history(Sidekiq::Pro.metrics, 30)
...

1 Ответ

0 голосов
/ 30 мая 2019

Мой коллега только что указал мне на это: https://github.com/mperham/sidekiq/wiki/Middleware#client-middleware-registered-in-both-places

Я думаю, это работает:

  config.server_middleware do |chain|
    require 'sidekiq/middleware/server/datadog'
    chain.add Sidekiq::Middleware::Server::Datadog, tags: ["test:app"]
  end
...