Sidekiq
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Sidekiq

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Présentation

Cette intégration permet de surveiller Sidekiq via Dogstatsd. Les métriques sont recueillies par le client dogstatsd-ruby de Datadog.

Remarque : seuls les utilisateurs de Sidekiq Pro (>= 3.6) ou Enterprise (>= 1.1.0) peuvent recueillir des métriques.

Configuration

Installation

L’intégration Sidekiq est incluse avec le paquet de l’Agent Datadog. Vous n’avez donc rien d’autre à installer sur votre serveur.

Configuration

  1. Installez la gem dogstatsd-ruby :

    gem install dogstatsd-ruby
  2. Pour activer la collecte de métriques Sidekiq Pro, ajoutez ce qui suit à votre initialiseur :

        require 'datadog/statsd' # gem 'dogstatsd-ruby'
    
        Sidekiq::Pro.dogstatsd = ->{ Datadog::Statsd.new('metrics.example.com', 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 vous utilisez Sidekiq Enterprise et que vous souhaitez recueillir des métriques historiques, ajoutez également cette ligne :

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

    Consultez la documentation sur Sidekiq Pro et Enterprise pour en savoir plus, ainsi que la documentation sur Ruby de Datadog pour découvrir d’autres options de configuration.

  3. Modifiez le fichier de configuration principal de l’Agent Datadog datadog.yaml pour y ajouter les paramètres suivants :

    # 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"
  4. Redémarrez l’Agent.

Validation

Lancez la sous-commande status de l’Agent et cherchez sidekiq dans la section Checks.

Données collectées

Métriques

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

L’intégration Sidekiq permet également la collecte de métriques custom. Consultez la documentation sur Sidekiq pour trouver des idées de métriques custom.

Collecte de logs

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans le fichier datadog.yaml avec :

      logs_enabled: true
  2. Ajoutez ce bloc de configuration à votre fichier sidekiq.d/conf.yaml pour commencer à recueillir vos logs Sidekiq :

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

    Modifiez les valeurs des paramètres path et service et configurez-les pour votre environnement. Si vous ne parvenez pas à trouver vos logs, consultez la documentation sur Sidekiq pour en savoir plus sur les logs.

  3. Redémarrez l’Agent.

Checks de service

Sidekiq n’inclut aucun check de service.

Événements

Sidekiq n’inclut aucun événement.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.