翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
メトリックスフィルターのフィルターパターン構文
注記
メトリクスフィルターと CloudWatch Logs Insights クエリの違い
メトリクスフィルターは、一致する CloudWatch ログが見つかるたびに、指定された数値がメトリクスフィルターに追加されるという点で Logs Insights クエリとは異なります。詳細については、「メトリクスフィルターのメトリクス値を設定する」を参照してください。
Amazon CloudWatch Logs Insights クエリ言語でロググループをクエリする方法については、「」を参照してくださいCloudWatch Logs Insights 言語クエリ構文。
[一般的なフィルターパターンの例]
メトリックスフィルターの他に、サブスクリプションフィルターとフィルターログイベントに適用される汎用フィルターパターン構文の詳細については、次の例を含むメトリックスフィルター、サブスクリプションフィルター、フィルターログイベントのフィルターパターン構文を参照してください。
サポートされている正規表現 (regex) 構文
非構造化ログイベントでの語句の一致
JSON ログイベントの語句の一致
スペース区切りのログイベントの語句一致
メトリクスフィルターを使用すると、 CloudWatch ログに入るログデータを検索およびフィルタリングし、フィルタリングされたログデータからメトリクスの観測値を抽出し、データポイントを CloudWatch ログメトリクスに変換できます。 CloudWatch Logs に送信されるログデータで検索する用語とパターンを定義します。メトリクスフィルターはロググループに割り当てられ、ロググループに割り当てられたすべてのフィルターはそのログストリームに適用されます。
メトリックスフィルターが語句と一致するとき、メトリックスの数を特定の数値で増えます。例えば、ログイベントで単語ERRORが発生した回数をカウントするメトリクスフィルターを作成できます。
メトリックスに測定の単位と寸法を割り当てることができます。例えば、ログイベントで単語ERRORが発生した回数をカウントするメトリクスフィルターを作成する場合、その単語を含むログイベントの合計数を表示ERRORし、報告されたエラーコードでデータをフィルタリングErrorCode
するために呼び出されるディメンションを指定できます。
ヒント
測定の単位をメトリックスに割り当てるとき、必ず正しい単位を指定してください。後で単位を変更すると、変更が有効にならない場合があります。が CloudWatch サポートするユニットの完全なリストについては、Amazon CloudWatch API リファレンスのMetricDatum「」を参照してください。
メトリクスフィルターのメトリクス値を設定する
メトリクスフィルターを作成する際は、フィルターパターンを定義し、メトリクス値とデフォルト値を指定します。メトリクス値は、数値、名前付き識別子、または数値識別子に設定できます。デフォルト値を指定しない場合、メトリクスフィルターで一致が見つからなかった場合、 はデータをレポート CloudWatch しません。値が 0 であっても、デフォルト値を指定することをお勧めします。デフォルト値を設定すると、より正確にデータを CloudWatch レポートでき、むらのあるメトリクスを が集計できなくなります CloudWatch 。 は 1 分ごとにメトリクス値を CloudWatch 集計してレポートします。
メトリクスフィルターがログイベント内で一致するものを見つけたら、メトリクスの数がメトリクスの値だけ増加します。メトリクスフィルターで一致が見つからない場合、 はメトリクスのデフォルト値 CloudWatch を報告します。例えば、ロググループが毎分 2 つのレコードを公開し、メトリクス値は 1 で、デフォルト値は 0 であるとします。最初の 1 分で両方のログレコードに一致が見つかった場合、その分のメトリクス値は 2 になります。次の 1 分間にどちらのレコードでも一致が見つからなかった場合、その分のデフォルト値は 0 となります。メトリクスフィルターが生成するメトリクスにディメンションを割り当てると、それらのメトリクスのデフォルト値を指定することはできません。
また、静的値ではなく、ログイベントから抽出された値でメトリクスを増分するようにメトリクスフィルターを設定することもできます。詳細については、「ログイベントの値を使用してメトリクスの値を増分する」を参照してください。
JSON の値またはスペース区切りのログイベントからのメトリクスを使用したディメンションの発行
CloudWatch コンソールまたは AWS CLI を使用して、 JSON およびスペース区切りのログイベントが生成するメトリクスでディメンションを発行するメトリクスフィルターを作成できます。ディメンションは名前と値のペアであり、 JSONおよびスペース区切りのフィルターパターンでのみ使用できます。最大 3 つのディメンションを持つJSON、スペース区切りのメトリクスフィルターを作成できます。ディメンションの詳細とディメンションをメトリクスに割り当てる方法の詳細については、以下のセクションを参照してください。
Amazon CloudWatch ユーザーガイドのディメンション
例: 「Amazon Logs ユーザーガイド」の「Apache ログからフィールドを抽出し、ディメンションを割り当てる CloudWatch 」
重要
ディメンションには、カスタムメトリクスと同じ請求を収集する値が含まれています。予期せぬ請求を防ぐため、IPAddress
または requestID
などをディメンションとするなど、高カーディナリティフィールドを指定しないでください。
メトリクスをログイベントから抽出すると、カスタムメトリクスとして料金が発生します。意図しない高額請求の徴収を防ぐため、Amazon は、特定の時間内に指定したディメンションのために 1000 の異なる名前と値のペアを生成した場合、メトリクスフィルターを無効化することがあります。
見積費用を通知する請求アラームを作成できます。詳細については、「予想AWS 請求額をモニタリングするための請求アラームの作成」を参照してください。
次の例には、JSONメトリクスフィルターでディメンションを指定する方法を説明するコードスニペットが含まれています。
次の例には、スペース区切りのメトリクスフィルターでディメンションを指定する方法を説明するコードスニペットが含まれています。
ログイベントの値を使用してメトリクスの値を増分する
ログイベントで見つかった数値を公開するメトリクスフィルターを作成できます。このセクションの手順では、次のメトリクスフィルターの例を使用して、JSONログイベント内の数値をメトリクスに発行する方法を示します。
{ $.latency = * } metricValue: $.latency
ログイベントの値を発行するメトリクスフィルターを作成するには
で CloudWatch コンソールを開きますhttps://console.aws.amazon.com/cloudwatch/
。 -
ナビゲーションペインで、ログ、ロググループ の順に選択します。
-
ロググループを選択または作成します。
ロググループの作成方法については、「Amazon Logs ユーザーガイド」の CloudWatch 「ログでのロググループの作成」を参照してください。 CloudWatch
-
[アクション]、[メトリクスフィルターの作成] の順に選択します。
-
[Filter Pattern] (フィルターパターン) に
{ $.latency = * }
と入力し、[Next] (次へ) を選択します。 -
[メトリクス名] に、myMetric を入力します。
-
[メトリクス値] に「
$.latency
」と入力します。 [Default Value] (デフォルト値) に 0 と入力し、[Next] (次へ) を選択します。
値が 0 であっても、デフォルト値を指定することをお勧めします。デフォルト値を設定すると、より正確にデータを CloudWatch レポートし、むらのあるメトリクスを が集計するのを防ぐ CloudWatch ことができます。 は 1 分ごとにメトリクス値を CloudWatch 集計してレポートします。
[Create metric filter] (メトリクスフィルターの作成) を選択します。
サンプルメトリクスフィルターは、"latency"
サンプルJSONログイベントの用語に一致し、50 の数値をメトリクス に発行しますmyMetric。
{
"latency": 50,
"requestType": "GET"
}