Почему не отправляются метрики из Resque задач?

Ситуация такая, что метрики отправляются при старте приложения, а из задач - нет.

Пробная метрика:
DATADOG_CLIENT.increment('bbb', by: 1, tags: ['step:foo'])


При этом app_boot.count видна на графиках Datadog.

В проекте используется такая конфигурация:
config/initializers/datadog.rb

unless Rails.env.test? || ENV['DISABLE_DATADOG'].present?
  require 'datadog/statsd'

  if Rails.env.development?
    Datadog.configure do |c|
      c.use :rails, service_name: "#{`whoami`}-rails-app"
    end
  else
    Datadog.configure do |c|
      c.use :rails, service_name: "#{Rails.env}-rails-app"
      c.use :resque, { service_name: 'resque' }
    end
  end
  # Create a DogStatsD client instance.
  DATADOG_CLIENT = Datadog::Statsd.new('localhost', 8125)

  DATADOG_CLIENT.increment('app_boot.count', tags: ["env:#{Rails.env}"])

  at_exit do
    # release resources used by the client instance
    DATADOG_CLIENT.close()
  end
end


Gems:
ddtrace (0.49.0)
dogstatsd-ruby (5.0.1)

Нужно как-то по-другому конфигурировать?
  • Вопрос задан
  • 28 просмотров
Решения вопроса 1
2ord
@2ord Автор вопроса
Разработчик гема посоветовал:
1. обновить dogstatsd-ruby до версии 5.3.0
2. добавить опцию single_thread: true

DATADOG_CLIENT = Datadog::Statsd.new('localhost', 8125, single_thread: true)

что решило проблему.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы