procstat プラグインでプロセスメトリクスを収集する
procstat プラグインでは、個別のプロセスからメトリクスを収集できます。このプラグインは、Linux サーバーと、サポート対象バージョンの Windows Server を実行するサーバーでサポートされます。このセクションでは、procstat 用に CloudWatch エージェントを設定し、CloudWatch エージェントによってインポートされるメトリクスを表示する方法について説明します。また、procstat によって収集されるメトリクスをリストします。
procstat 向けの CloudWatch エージェントの設定
procstat プラグインを使用するには、CloudWatch エージェント設定ファイルの procstat
セクションに metrics_collected
セクションを追加します。モニターリングするプロセスを指定するには 3 つの方法があります。これらの方法のうち使用できるのは 1 つのみですが、この 1 つの方法を使用して複数のプロセスを指定してモニターリングできます。
-
pid_file
: 作成するプロセス識別番号 (PID) ファイルの名前でプロセスを選択します。 -
exe
: 正規表現の照合ルールを使用して、指定した文字列と一致するプロセス名のプロセスを選択します。一致は「含む」一致です。つまり、一致する用語としてagent
を指定した場合、cloudwatchagent
のような名前を持つプロセスは、その用語に一致します。詳細については、「Syntax」を参照してください。 -
pattern
: プロセスの起動に使用するコマンドラインでプロセスを選択します。正規表現の照合ルールを使用して指定した文字列と一致するコマンドラインを持つすべてのプロセスが選択されます。コマンドで使用されるパラメータやオプションも含めて、コマンドライン全体がチェックされます。一致は「含む」一致です。つまり、一致する用語として
-c
を指定した場合、-config
のようなパラメータを持つプロセスは、その用語に一致します。 -
drop_original_metrics
- オプション。metrics
セクションのaggregation_dimensions
フィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。
以上の複数のセクションを含めた場合でも、CloudWatch エージェントで使用される方法は 1 つのみです。複数のセクションを指定すると、CloudWatch エージェントは pid_file
セクションを使用します (ある場合)。これが存在しない場合は、exe
セクションを使用します。
Linux サーバーの場合、exe
セクションまたは pattern
セクションで指定した文字列は正規表現として評価されます。Windows Server を実行するサーバーの場合、これらの文字列は WMI クエリとして評価されます。文字列の例は pattern: "%apache%"
などです。詳細については、「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
と表示されます。
メトリクス名 | 次で利用可能 | 説明 |
---|---|---|
|
Linux |
プロセスで CPU を使用する時間。このメトリクスは、1/100 秒単位で測定されます。 単位: 個 |
|
Linux |
プロセスがゲストモードになっている時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
プロセスが nice ゲストで実行されている時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
プロセスがアイドルモードになっている時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
プロセスが I/O 操作の完了を待機している時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
プロセスが中断を処理している時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
プロセスが nice モードになっている時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
プロセスがソフトウェアの中断を処理している時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux |
仮想化環境で実行中に、他のオペレーティングシステムでの実行に費やされる時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux、Windows Server |
プロセスが盗まれた時間になっている時間です。これは、仮想化環境で他のオペレーティングシステムに費やされる時間です。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: なし |
|
Linux、Windows Server、macOS |
プロセスがシステムモードになっている時間。このメトリクスは、1/100 秒単位で測定されます。 タイプ: 浮動小数点 単位: カウント |
|
Linux、Windows Server、macOS |
プロセスがユーザーモードになっている時間。このメトリクスは、1/100 秒単位で測定されます。 単位: カウント |
|
Linux、Windows Server、macOS |
任意の容量でプロセスがアクティブになっている時間の割合。 単位: パーセント |
|
Linux、macOS |
プロセスで使用するデータ用メモリの量。 単位: バイト |
|
Linux、macOS |
プロセスでロックされているメモリの量。 単位: バイト |
|
Linux、Windows Server、macOS |
プロセスが使用している実際のメモリ (常駐セット) の量。 単位: バイト |
|
Linux、macOS |
プロセスで使用されているスタックメモリの量。 単位: バイト |
|
Linux、macOS |
プロセスで使用されているスワップメモリの量。 単位: バイト |
|
Linux、Windows Server、macOS |
プロセスで使用されている仮想メモリの量。 単位: バイト |
|
Linux |
このプロセスが開いているファイルディスクリプタの数です。 単位: なし |
|
Linux、Windows、macOS |
このプロセス内におけるスレッドの数です。 単位: なし |
|
Linux、Windows Server、macOS |
プロセス識別子 (ID)。 単位: なし |
|
Linux、Windows Server、macOS |
プロセスに関連付けられたプロセス ID の数。 このメトリクスのフルネームは、Linux サーバーおよび macOS コンピュータでは 単位: なし |
|
Linux、Windows Server |
プロセスがディスクから読み取ったバイト数。 単位: バイト |
|
Linux、Windows Server |
プロセスがディスクに書き込んだバイト数。 単位: バイト |
|
Linux、Windows Server |
プロセスが実行したディスク読み込みオペレーションの数。 単位: なし |
|
Linux |
このプロセスに設定できる最大リアルタイム優先度のハード制限です。 単位: なし |
|
Linux |
このプロセスに設定できる最大リアルタイム優先度のソフト制限です。 単位: なし |
|
Linux |
このプロセスでキューに入れられる最大シグナル数のハード制限です。 単位: なし |
|
Linux |
このプロセスでキューに入れられる最大シグナル数のソフト制限です。 単位: なし |
|
Linux |
このプロセスで設定できる最大 nice 優先度のハード制限です。 単位: なし |
|
Linux |
このプロセスで設定できる最大 nice 優先度のソフト制限です。 単位: なし |
|
Linux |
このプロセスが開くことができるファイルディスクリプタの最大数のハード制限です。 単位: なし |
|
Linux |
このプロセスが開くことができるファイルディスクリプタの最大数のソフト制限です。 単位: なし |
|
Linux、Windows Server |
プロセスが実行したディスク書き込みオペレーションの数。 単位: なし |
|
Linux |
プロセスのコンテキストが意図せずに切り替えられた回数。 単位: なし |
|
Linux |
プロセスのコンテキストが意図的に切り替えられた回数。 単位: なし |
|
Linux |
プロセスで現在使用されているリアルタイム優先度。 単位: なし |
|
Linux |
プロセスで現在使用されている nice 優先度。 単位: なし |
|
Linux |
プロセスによる処理待ち中のシグナルの数。 単位: なし |
|
Linux |
プロセスの CPU 時間のハードリソース制限。 単位: なし |
|
Linux |
プロセスの CPU 時間のソフトリソース制限。 単位: なし |
|
Linux |
プロセスのファイルロックのハードリソース制限。 単位: なし |
|
Linux |
プロセスのファイルロックのソフトリソース制限。 単位: なし |
|
Linux |
プロセスのデータ用メモリに関するハードリソース制限。 単位: バイト |
|
Linux |
プロセスのデータ用メモリに関するソフトリソース制限。 単位: バイト |
|
Linux |
プロセスのロックされたメモリに関するハードリソース制限。 単位: バイト |
|
Linux |
プロセスのロックされたメモリに関するソフトリソース制限。 単位: バイト |
|
Linux |
プロセスの物理メモリに関するハードリソース制限。 単位: バイト |
|
Linux |
プロセスの物理メモリに関するソフトリソース制限。 単位: バイト |
|
Linux |
プロセススタックに関するハードリソース制限。 単位: バイト |
|
Linux |
プロセススタックに関するソフトリソース制限。 単位: バイト |
|
Linux |
プロセスの仮想メモリに関するハードリソース制限。 単位: バイト |
|
Linux |
プロセスの仮想メモリに関するソフトリソース制限。 単位: バイト |
CloudWatch エージェントによってインポートされたプロセスメトリクスの表示
プロセスメトリクスを CloudWatch にインポートした後、これらのメトリクスを時系列グラフとして表示し、これらのメトリクスをモニターリングし、指定したしきい値に違反した場合に通知できるアラームを作成できます。以下の手順では、プロセスメトリクスを時系列グラフとして表示する方法を示します。アラームの設定の詳細については、「 Amazon CloudWatch でのアラームの使用」を参照してください。
CloudWatch コンソールでプロセスメトリクスを表示するには
-
CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/
) を開きます。 -
ナビゲーションペインで [Metrics (メトリクス)] を選択します。
-
エージェントによって収集されたメトリクスの名前空間を選択します。デフォルトでは、これは CWAgent ですが、CloudWatch エージェント設定ファイルで別の名前空間を指定している場合があります。
-
メトリクスのディメンション (例: インスタンス別メトリクス) を選択します。
-
[All metrics] タブには、名前空間内のそのディメンションのメトリクスがすべて表示されます。以下の操作を行うことができます。
-
メトリクスをグラフ表示するには、メトリクスの横にあるチェックボックスを選択します。すべてのメトリクスを選択するには、テーブルの見出し行にあるチェックボックスを選択します。
-
テーブルを並べ替えるには、列見出しを使用します。
-
リソースでフィルタするには、リソース ID を選択し、[Add to search] を選択します。
-
メトリクスでフィルタするには、メトリクスの名前を選択し、[Add to search] を選択します。
-
(オプション) このグラフを CloudWatch ダッシュボードに追加するには、[Actions] (アクション)、[Add to dashboard] (ダッシュボードに追加) の順に選択します。