Sidekiq

Supported OS Linux Mac OS Windows

Integration version3.0.0

Información general

Esta integración monitoriza Sidekiq a través de DogStatsD. Recopila métricas a través de el cliente DogStatsD Ruby de Datadog.

Nota Solo los usuarios de Sidekiq Pro (>= 3.6) o Enterprise (>= 1.1.0) pueden recopilar métricas.

Configuración

Instalación

La integración de Sidekiq viene en el paquete del Datadog Agent. No es necesaria ninguna instalación adicional en tu servidor.

Configuración

  1. Instala el gem dogstatsd-ruby:

     gem install dogstatsd-ruby
    
  2. Habilita la recopilación de métricas de Sidekiq Pro incluyendo esto en tu inicializador; para un despliegue en contenedores, actualiza localhost a tu dirección del contenedor del Agent:

         require 'datadog/statsd' # gem 'dogstatsd-ruby'
    
         Sidekiq::Pro.dogstatsd = ->{ Datadog::Statsd.new('localhost', 8125, namespace:'sidekiq') }
    
         Sidekiq.configure_server do |config|
           config.server_middleware do |chain|
             require 'sidekiq/middleware/server/statsd'
             chain.add Sidekiq::Middleware::Server::Statsd
           end
         end
    

    Si utilizas Sidekiq Enterprise y deseas recopilar métricas históricas, incluye también esta línea:

           Sidekiq.configure_server do |config|
             # history is captured every 30 seconds by default
             config.retain_history(30)
           end
    

    Consulta la documentación de Sidekiq Pro y Enterprise para obtener más información y la documentación de DogStatsD Ruby para obtener más opciones de configuración.

  3. Actualiza el archivo de configuración principal del Datadog Agent datadog.yaml añadiendo las siguientes configuraciones:

    # dogstatsd_mapper_cache_size: 1000  # default to 1000
    dogstatsd_mapper_profiles:
      - name: sidekiq
        prefix: "sidekiq."
        mappings:
          - match: 'sidekiq\.sidekiq\.(.*)'
            match_type: "regex"
            name: "sidekiq.$1"
          - match: 'sidekiq\.jobs\.(.*)\.perform'
            name: "sidekiq.jobs.perform"
            match_type: "regex"
            tags:
              worker: "$1"
          - match: 'sidekiq\.jobs\.(.*)\.(count|success|failure)'
            name: "sidekiq.jobs.worker.$2"
            match_type: "regex"
            tags:
              worker: "$1"
    

    Estos parámetros también pueden establecerse añadiendo la variable de entorno DD_DOGSTATSD_MAPPER_PROFILES al Datadog Agent.

  4. Reinicia el Agent.

Datos recopilados

Métricas

sidekiq.batches.complete
(count)
Count of when a batch is completed
sidekiq.batches.created
(count)
Count of when a batch is created
sidekiq.batches.success
(count)
Count of when a batch is successful
sidekiq.busy
(count)
Total Busy Size (Enterprise only)
Shown as job
sidekiq.dead
(count)
Total Dead Size (Enterprise only)
Shown as job
sidekiq.enqueued
(count)
Total size of all known queues (Enterprise only)
Shown as job
sidekiq.failed
(count)
Number of job executions which raised an error (Enterprise only)
Shown as job
sidekiq.jobs.count
(count)
Total count of Sidekiq jobs
Shown as job
sidekiq.jobs.expired
(count)
Count of when a job is expired
Shown as job
sidekiq.jobs.failure
(count)
Total count of failed Sidekiq jobs
Shown as job
sidekiq.jobs.perform.95percentile
(gauge)
95th percentile of amount of time spent in a worker
Shown as millisecond
sidekiq.jobs.perform.avg
(gauge)
Average amount of time spent in a worker
Shown as millisecond
sidekiq.jobs.perform.count
(gauge)
Count of the amount of time spent in a worker
Shown as millisecond
sidekiq.jobs.perform.max
(gauge)
Max amount of time spent in a worker
Shown as millisecond
sidekiq.jobs.perform.median
(gauge)
Median amount of time spent in a worker
Shown as millisecond
sidekiq.jobs.recovered.fetch
(count)
Count of when a job is recovered by super_fetch after process crash
Shown as job
sidekiq.jobs.recovered.push
(count)
Count of when a job is recovered by reliable_push after network outage
Shown as job
sidekiq.jobs.success
(count)
Total count of successful Sidekiq jobs
Shown as job
sidekiq.jobs.worker.count
(count)
Count of Sidekiq jobs
Shown as job
sidekiq.jobs.worker.failure
(count)
Count of failed Sidekiq jobs
Shown as job
sidekiq.jobs.worker.success
(count)
Count of successful Sidekiq jobs
Shown as job
sidekiq.processed
(count)
Number of job executions completed (success or failure) (Enterprise only)
Shown as job
sidekiq.retries
(count)
Total retries size (Enterprise only)
Shown as job
sidekiq.scheduled
(count)
Total Scheduled Size (Enterprise only)
Shown as job

La integración de Sidekiq también permite métricas personalizadas, consulta Métricas históricas de Sidekiq Enterprise.

Recopilación de logs

  1. La recopilación de logs está desactivada por defecto en el Datadog Agent. Habilítalo en el archivo datadog.yaml con:

      logs_enabled: true
    
  2. Añade este bloque de configuración a tu archivo sidekiq.d/conf.yaml para empezar a recopilar tus logs de Sidekiq:

      logs:
        - type: file
          path:  /var/log/sidekiq.log
          source: sidekiq
          service: <SERVICE>
    

    Cambia los valores de los parámetros path y service y configúralos para tu entorno. Si no encuentras tus logs, consulta registro de Sidekiq.

  3. Reinicia el Agent.

Checks de servicio

Sidekiq no incluye ningún check de servicio.

Eventos

Sidekiq no incluye ningún evento.

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el soporte de Datadog.