Sidekiq

Sidekiq

Agent Check Agentチェック

Linux Mac OS Windows OS Supported

概要

このインテグレーションは、SidekiqDogStatsD を監視します。Datadog の DogStatsD Ruby クライアントを介してメトリクスを収集します。

Sidekiq Pro (>= 3.6) または Enterprise (>= 1.1.0) のユーザーのみがメトリクスを収集できます。

セットアップ

インストール

Sidekiq インテグレーションは Datadog Agent にパッケージ化されています。 サーバーに追加でインストールする必要はありません。

コンフィギュレーション

  1. dogstatsd-ruby gem をインストールします。

     gem install dogstatsd-ruby
    
  2. Sidekiq Pro メトリクス収集を初期化子に含めることで有効にします。コンテナ化されたデプロイの場合は、localhost を 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
    

    Sidekiq Enterprise を使用していて、履歴メトリクスを収集する場合は、次の行も含めます。

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

    詳細については、Sidekiq Pro および Enterprise のドキュメントを参照してください。詳細なコンフィギュレーションオプションについては、DogStatsD Ruby のドキュメントを参照してください。

  3. 下記のコンフィギュレーションを追加して、Datadog Agent のメインコンフィギュレーションファイルである datadog.yaml を更新します。

    # 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. Agent を再起動します

収集データ

メトリクス

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 (Enterprise only)
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

Sidekiq インテグレーションでは、カスタムメトリクスも使用できます。カスタムメトリクスのアイデアについては、Sidekiq のドキュメントを参照してください。

ログの収集

  1. Datadog Agent でのログ収集は、デフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

      logs_enabled: true
    
  2. Sidekiq のログの収集を開始するには、次のコンフィギュレーションブロックを sidekiq.d/conf.yaml ファイルに追加します。

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

    path パラメーターと service パラメーターの値を変更し、環境に合わせて構成してください。ログが見つからない場合は、Sidekiq のドキュメントでログの詳細を確認してください。

  3. Agent を再起動します

サービスのチェック

Sidekiq には、サービスのチェック機能は含まれません。

イベント

Sidekiq には、イベントは含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。