procstat プラグインでプロセスメトリクスを収集する - Amazon CloudWatch

procstat プラグインでプロセスメトリクスを収集する

procstat プラグインでは、個別のプロセスからメトリクスを収集できます。このプラグインは、Linux サーバーと、Windows Server 2008 R2 以降を実行するサーバーでサポートされます。

procstat 用に CloudWatch エージェントを設定する

procstat プラグインを使用するには、CloudWatch エージェント設定ファイルの metrics_collected セクションに procstat セクションを追加します。モニタリングするプロセスを指定するには 3 つの方法があります。これらの方法のうち使用できるのは 1 つのみですが、この 1 つの方法を使用して複数のプロセスを指定してモニタリングできます。

  • pid_file: 作成するプロセス識別番号 (PID) ファイルの名前でプロセスを選択します。

  • exe: 正規表現の照合ルールを使用して、指定した文字列と一致するプロセス名のプロセスを選択します。一致は「含む」一致です。つまり、一致する用語として agent を指定した場合、cloudwatchagent のような名前を持つプロセスは、その用語に一致します。詳細については、「Syntax」を参照してください。

  • pattern: プロセスの起動に使用するコマンドラインでプロセスを選択します。正規表現の照合ルールを使用して指定した文字列と一致するコマンドラインを持つすべてのプロセスが選択されます。コマンドで使用されるパラメータやオプションを含むコマンドライン全体が確認されます。

    一致は「含む」一致です。つまり、一致する用語として -c を指定した場合、-config のようなパラメータを持つプロセスは、その用語に一致します。

以上の複数のセクションを含めた場合でも、CloudWatch エージェントで使用される方法は 1 つのみです。複数のセクションを指定すると、CloudWatch エージェントは pid_file セクションを使用します (ある場合)。これが存在しない場合は、exe セクションを使用します。

Linux サーバーの場合、exe セクションまたは pattern セクションで指定した文字列は正規表現として評価されます。Windows Server を実行するサーバーの場合、これらの文字列は WMI クエリとして評価されます。詳細については、「LIKE Operator」を参照してください。

どの方法を使用する場合でも、省略可能な metrics_collection_interval パラメータを含めることができます。このパラメータは、これらのメトリクスを収集する間隔を秒単位で指定します。このパラメータを省略すると、デフォルト値の 60 秒が使用されます。

以下のセクションの例では、procstat セクションのみをエージェント設定ファイルの metrics_collected セクションに追加しています。実際の設定ファイルでは、他のセクションも metrics_collected に追加できます。詳細については、「 CloudWatch エージェント設定ファイルを手動で作成または編集する」を参照してください。

Pid_file による設定

次の例の procstat セクションでは、PID ファイルの example1.pid および example2.pid の作成プロセスをモニタリングします。プロセスごとに異なるメトリクスが収集されます。example2.pid の作成プロセスからのメトリクスは、10 秒間隔で収集されます。example1.pid プロセスからのメトリクスは、デフォルト値の 60 秒間隔で収集されます。

{ "metrics": { "metrics_collected": { "procstat": [ { "pid_file": "/var/run/example1.pid", "measurement": [ "cpu_usage", "memory_rss" ] }, { "pid_file": "/var/run/example2.pid", "measurement": [ "read_bytes", "read_count", "write_bytes" ], "metrics_collection_interval": 10 } ] } } }

Exe による設定

次の例の procstat セクションでは、文字列の agent または plugin と一致する名前を持つすべてのプロセスをモニタリングします。各プロセスから同じメトリクスが収集されます。

{ "metrics": { "metrics_collected": { "procstat": [ { "exe": "agent", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] }, { "exe": "plugin", "measurement": [ "cpu_time", "cpu_time_system", "cpu_time_user" ] } ] } } }

Pattern による設定

次の例の procstat セクションでは、文字列の config または -c と一致するコマンドラインを持つすべてのプロセスをモニタリングします。各プロセスから同じメトリクスが収集されます。

{ "metrics": { "metrics_collected": { "procstat": [ { "pattern": "config", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] }, { "pattern": "-c", "measurement": [ "rlimit_memory_data_hard", "rlimit_memory_data_soft", "rlimit_memory_stack_hard", "rlimit_memory_stack_soft" ] } ] } } }

Procstat で収集されるメトリクス

次の表は、procstat プラグインで収集できるメトリクスの一覧です。

CloudWatch エージェントは、以下のメトリクス名の先頭に procstat を追加します。収集元が Linux サーバーであるか、Windows Server を実行するサーバーであるかに応じて構文は異なります。たとえば、cpu_time メトリクスは、収集元が Linux である場合は procstat_cpu_time と表示され、収集元が Windows Server である場合は procstat cpu_time と表示されます。

メトリクス名 利用可能なサーバー 説明

cpu_time

Linux

プロセスで CPU を使用する時間。このメトリクスは、1/100 秒単位で測定されます。

単位: カウント

cpu_time_system

Linux、Windows Server

プロセスがシステムモードになっている時間。このメトリクスは、1/100 秒単位で測定されます。

タイプ: 浮動小数点

単位: カウント

cpu_time_user

Linux、Windows Server

プロセスがユーザーモードになっている時間。このメトリクスは、1/100 秒単位で測定されます。

単位: カウント

cpu_usage

Linux、Windows Server

任意の容量でプロセスがアクティブになっている時間の割合。

単位: パーセント

memory_data

Linux

プロセスで使用するデータ用メモリの量。

単位: バイト

memory_locked

Linux

プロセスでロックされているメモリの量。

単位: バイト

memory_rss

Linux、Windows Server

プロセスが使用している実際のメモリ (常駐セット) の量。

単位: バイト

memory_stack

Linux

プロセスで使用されているスタックメモリの量。

単位: バイト

memory_swap

Linux

プロセスで使用されているスワップメモリの量。

単位: バイト

memory_vms

Linux、Windows Server

プロセスで使用されている仮想メモリの量。

単位: バイト

pid

Linux、Windows Server

プロセス識別子 (ID)。

単位: カウント

pid_count

Linux、Windows Server

プロセスに関連付けられたプロセス ID の数。

このメトリクスのフルネームは、Linux サーバーでは procstat_lookup_pid_count、Windows サーバーでは procstat_lookup pid_count です。

単位: 個

read_bytes

Linux、Windows Server

プロセスがディスクから読み取ったバイト数。

単位: バイト

write_bytes

Linux、Windows Server

プロセスがディスクに書き込んだバイト数。

単位: バイト

read_count

Linux、Windows Server

プロセスが実行したディスク読み込みオペレーションの数。

単位: カウント

write_count

Linux、Windows Server

プロセスが実行したディスク書き込みオペレーションの数。

単位: カウント

involuntary_context_switches

Linux

プロセスのコンテキストが意図せずに切り替えられた回数。

単位: カウント

voluntary_context_switches

Linux

プロセスのコンテキストが意図的に切り替えられた回数。

単位: カウント

realtime_priority

Linux

プロセスで現在使用されているリアルタイム優先度。

単位: カウント

nice_priority

Linux

プロセスで現在使用されている nice 優先度。

単位: カウント

signals_pending

Linux

プロセスによる処理待ち中のシグナルの数。

単位: カウント

rlimit_cpu_time_hard

Linux

プロセスの CPU 時間のハードリソース制限。

単位: カウント

rlimit_cpu_time_soft

Linux

プロセスの CPU 時間のソフトリソース制限。

単位: カウント

rlimit_file_locks_hard

Linux

プロセスのファイルロックのハードリソース制限。

単位: カウント

rlimit_file_locks_soft

Linux

プロセスのファイルロックのソフトリソース制限。

単位: カウント

rlimit_memory_data_hard

Linux

プロセスのデータ用メモリに関するハードリソース制限。

単位: バイト

rlimit_memory_data_soft

Linux

プロセスのデータ用メモリに関するソフトリソース制限。

単位: バイト

rlimit_memory_locked_hard

Linux

プロセスのロックされたメモリに関するハードリソース制限。

単位: バイト

rlimit_memory_locked_soft

Linux

プロセスのロックされたメモリに関するソフトリソース制限。

単位: バイト

rlimit_memory_rss_hard

Linux

プロセスの物理メモリに関するハードリソース制限。

単位: バイト

rlimit_memory_rss_soft

Linux

プロセスの物理メモリに関するソフトリソース制限。

単位: バイト

rlimit_memory_stack_hard

Linux

プロセススタックに関するハードリソース制限。

単位: バイト

rlimit_memory_stack_soft

Linux

プロセススタックに関するソフトリソース制限。

単位: バイト

rlimit_memory_vms_hard

Linux

プロセスの仮想メモリに関するハードリソース制限。

単位: バイト