プロセス

プロセス

Agent Check Agentチェック

Linux Mac OS Windows OS Supported

概要

プロセスチェックを使用して、以下のことができます。

  • CPU、メモリ、I/O、スレッド数など、任意のホスト上で実行されている特定プロセスのリソース使用状況メトリクスを収集できます。
  • プロセスモニターを使用できます。実行されなければならない特定プロセスのインスタンス数にしきい値を設定し、そのしきい値が満たされない場合にアラートを発行します (下のサービスのチェックを参照)。

セットアップ

インストール

プロセスチェックは Datadog Agent パッケージに含まれています。サーバーに追加でインストールする必要はありません。

コンフィギュレーション

他のチェックとは異なり、デフォルトのプロセスチェックは、特に役立つ監視を行いません。どのプロセスをどのように監視するかを構成する必要があります。

  1. 標準的なデフォルトのチェックコンフィギュレーションはありませんが、以下に SSH/SSHD 処理を監視する process.d/conf.yaml の例を示します。使用可能なすべての構成オプションの詳細については、サンプル process.d/conf.yaml を参照してください。
init_config:

instances:

## @param name - string - required
## Used to uniquely identify your metrics as they are tagged with this name in Datadog.
#
      - name: ssh

## @param search_string - list of strings - optional
## If one of the elements in the list matches, it returns the count of
## all the processes that match the string exactly by default. Change this behavior with the
## parameter `exact_match: false`.
##
## Note: One and only one of search_string, pid or pid_file must be specified per instance.
#
        search_string:
          - ssh
          - sshd

プロセスメトリクスによっては、Datadog コレクターを監視対象プロセスと同じユーザーとして実行するか、特権的なアクセスを取得する必要があります。前者のオプションが望ましくなく、Datadog Collector を root として実行することを避けるには、try_sudo オプションを使用して、プロセスチェックが sudo を使用してこのメトリクスを収集するようにします。現時点では、Unix プラットフォームの open_file_descriptors メトリクスだけがこの設定を利用しています。注: これが動作するには、適切な sudoers ルールを構成する必要があります。

dd-agent ALL=NOPASSWD: /bin/ls /proc/*/fd/
  1. Agent を再起動します

検証

Agent の status サブコマンドを実行し、Checks セクションで process を探します。

メトリクスに関するメモ

: Linux または OSX では一部のメトリクスは使用できません。

  • Agent が読み取るファイル (/proc//io) はプロセスのオーナーのみ読み取り可能であるため、Process I/O メトリクスは Linux または OSX では使用できません。詳しくは、Agent FAQ をご参照ください
  • system.cpu.iowait は、Windows では使用できません。

すべてのメトリクスは process.yaml で構成された instance ごとに収集され、process_name:<instance_name> のタグが付きます。

このチェックにより送信される system.processes.cpu.pct メトリクスは、30 秒間以上存在する処理でのみ正確です。 それ以下の短い処理の場合、その値は正確でない場合があります。

メトリクスの完全なリストについては、メトリクスセクションを参照してください。

収集データ

メトリクス

system.processes.cpu.pct
(gauge)
The CPU utilization of a process.
Shown as percent
system.processes.cpu.normalized_pct
(gauge)
The normalized CPU utilization of a process.
Shown as percent
system.processes.involuntary_ctx_switches
(gauge)
The number of involuntary context switches performed by this process.
Shown as event
system.processes.ioread_bytes
(gauge)
The number of bytes read from disk by this process. In Windows: the number of bytes read.
Shown as byte
system.processes.ioread_bytes_count
(count)
The number of bytes read from disk by this process. In Windows: the number of bytes read.
Shown as byte
system.processes.ioread_count
(gauge)
The number of disk reads by this process. In Windows: the number of reads by this process.
Shown as read
system.processes.iowrite_bytes
(gauge)
The number of bytes written to disk by this process. In Windows: the number of bytes written by this process.
Shown as byte
system.processes.iowrite_bytes_count
(count)
The number of bytes written to disk by this process. In Windows: the number of bytes written by this process.
Shown as byte
system.processes.iowrite_count
(gauge)
The number of disk writes by this process. In Windows: the number of writes by this process.
Shown as write
system.processes.mem.page_faults.minor_faults
(gauge)
The number of minor page faults per second for this process.
Shown as occurrence
system.processes.mem.page_faults.children_minor_faults
(gauge)
The number of minor page faults per second for children of this process.
Shown as occurrence
system.processes.mem.page_faults.major_faults
(gauge)
The number of major page faults per second for this process.
Shown as occurrence
system.processes.mem.page_faults.children_major_faults
(gauge)
The number of major page faults per second for children of this process.
Shown as occurrence
system.processes.mem.pct
(gauge)
The process memory consumption.
Shown as percent
system.processes.mem.real
(gauge)
The non-swapped physical memory a process has used and cannot be shared with another process (Linux only).
Shown as byte
system.processes.mem.rss
(gauge)
The non-swapped physical memory a process has used. aka "Resident Set Size".
Shown as byte
system.processes.mem.vms
(gauge)
The total amount of virtual memory used by the process. aka "Virtual Memory Size".
Shown as byte
system.processes.number
(gauge)
The number of processes.
Shown as process
system.processes.open_file_descriptors
(gauge)
The number of file descriptors used by this process (only available for processes run as the dd-agent user)
system.processes.open_handles
(gauge)
The number of handles used by this process.
system.processes.threads
(gauge)
The number of threads used by this process.
Shown as thread
system.processes.voluntary_ctx_switches
(gauge)
The number of voluntary context switches performed by this process.
Shown as event
system.processes.run_time.avg
(gauge)
The average running time of all instances of this process
Shown as second
system.processes.run_time.max
(gauge)
The longest running time of all instances of this process
Shown as second
system.processes.run_time.min
(gauge)
The shortest running time of all instances of this process
Shown as second

イベント

プロセスチェックには、イベントは含まれません。

サービスのチェック

process.up
Returns OK if the check is within the warning thresholds, CRITICAL if it’s outside of the critical thresholds, and WARNING if it’s outside of the warning thresholds.
Statuses: ok, warning, critical

トラブルシューティング

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

その他の参考資料

プロセスのリソース消費を監視する方法 (または理由) について理解するには、このブログ記事を参照してください。