View a markdown version of this page

CloudWatch Logs Insights 言語のクエリ構文 - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

CloudWatch Logs Insights 言語のクエリ構文

このセクションでは、Logs Insights QL の詳細について説明します。クエリ構文は、一般的な関数、算術演算と比較演算、正規表現など、さまざまな関数とオペレーションをサポートしています。

重要

大規模なクエリを実行して過剰な料金が発生するのを防ぐため、次のベストプラクティス留意してください。

  • 各クエリに必要なロググループのみを選択します。

  • クエリには、常にできるだけ狭い時間範囲を指定します。

  • コンソールを使用してクエリを実行する場合は、CloudWatch Logs Insights コンソールページを閉じる前にすべてのクエリをキャンセルします。それ以外の場合、クエリは完了するまで実行され続けます。

  • CloudWatch Logs Insights ウィジェットをダッシュボードに追加するときは、更新ごとに新しいクエリが開始されるため、ダッシュボードが高頻度で更新されないようにしてください。

複数のコマンドを含むクエリを作成するときは、コマンドをパイプ文字 (|) で区切ります。

コメントを含むクエリを作成するときは、コメントをハッシュ文字 (#) で区切ります。

注記

CloudWatch Logs Insights は、さまざまなログタイプのフィールドを自動で検出し、@ 文字で始まるフィールドを生成します。これらのフィールドの詳細については、「Amazon CloudWatch ユーザーガイド」の「サポートされるログと検出されるフィールド」を参照してください。

次の表で、各コマンドについて簡単に説明します。この表の後に、各コマンドについての詳細な説明と例を示します。

注記

すべての Logs Insights QL クエリコマンドは、標準ログクラスのロググループでサポートされています。低頻度アクセスログクラスのロググループは patterndiffunmask を除くすべての Logs Insights QL クエリコマンドをサポートします。

addtotals

数値フィールドの行合計と列合計を計算します。

anomaly

機械学習を使用して、ログデータの異常なパターンを識別します。

display

クエリ結果に特定のフィールドを表示します。

fields

クエリ結果に特定のフィールドを表示し、クエリで使用するフィールド値を変更したり新しいフィールドを作成したりするときに使用できる関数と演算をサポートします。

filter

クエリをフィルタリングし、1 つ以上の条件に一致するログイベントのみを返します。

filterIndex

フィールドインデックスに記載されているフィールドでインデックス作成され、そのフィールドインデックスの値も含まれるロググループのみをスキャンするようにクエリに強制します。これにより、このフィールドインデックスのクエリで指定された値を含むこれらのロググループのログイベントのみをスキャンしようとすることで、スキャンされるボリュームが減少します。

このコマンドは、低頻度アクセスログクラスのロググループではサポートされていません。

pattern

自動的にログデータをパターンにクラスター化します。パターンは、ログフィールド間で繰り返される共有テキスト構造です。CloudWatch Logs Insights には、ログイベントで検出されたパターンを分析する方法が用意されています。詳細については、「パターン分析」を参照してください。

diff

リクエストされた期間に検出されたログイベントと、以前の期間と同じ長さのログイベントを比較して、傾向を検索し、特定のログイベントが新しいかどうかを確認することができます。

parse

ログフィールドからデータを抽出し、クエリで処理できる抽出フィールドを作成します。parse は、ワイルドカードを使用する glob モードと正規表現の両方をサポートします。

sort

返されたログイベントを昇順 (asc) または降順 (desc) で表示します。

SOURCE

をクエリSOURCEに含めることは、ロググループ名のプレフィックス、アカウント識別子、ロググループクラス、データソース、またはロググループタグに基づいて、クエリに含める大量のロググループを指定するのに役立ちます。このコマンドは、CloudWatch コンソールではなく、 AWS CLI またはプログラムでクエリを作成する場合にのみサポートされます。

stats

ログフィールドの値を使って集計した統計を算出します。

limit

クエリで返すログイベントの最大数を指定します。sort で「上位 20 件」または「最新の 20 件」の結果を返すソートと一緒に使用すると便利です。十分な結果が見つかると、 limit anyを使用してスキャンを早期に停止します。

dedup

指定したフィールドの特定の値に基づいて、重複した結果を削除します。

unmask

データ保護ポリシーにより一部のコンテンツがマスクされているログイベントの、すべてのコンテンツを表示します。ロググループのデータ保護の詳細については、「機密性の高いログデータをマスキングで保護する」を参照してください。

unnest

入力として取得したリストをフラット化し、リスト内の各要素に対して 1 つのレコードを持つ複数のレコードを生成します。

lookup

フィールド値を一致させることで、ルックアップテーブルのデータを含むログイベントを強化します。ルックアップテーブルを使用して、ユーザーの詳細、アプリケーション名、製品情報などの参照データをクエリ結果に追加します。

join

ソースロググループからのログイベントを、一致するフィールドに基づいて別のロググループまたはクエリ結果からのイベントと結合します。join コマンドを使用して、一致するリクエスト識別子やトランザクション IDs。

subqueries

サブクエリは、別のクエリへの入力として使用できるネストされた Logs Insights クエリです。サブクエリを使用すると、後続のコマンドで消費される中間結果セットを取得できます。

autoregress

フィールドの値の遅延 (前行) コピーを作成します。

logcompare

現在の時間枠を、期間だけ戻されたベースラインウィンドウと比較します。

filldown

最後の NULL 以外の値を実行してギャップを埋めます。

fillmissing

bin() による統計の後に空のタイムビンの行を挿入し、オプションでフィールドを定数で埋めます。

cidrlookup

IP フィールドをルックアップテーブルの CIDR 範囲と照合することで、イベントを強化します。

outlier

四分位範囲 (IQR) に基づいて統計外れ値を検出し、外れ値行を削除または変換できます。

accum

数値フィールドの実行中の累積合計を計算します。

appendcols

位置行マッチングによって、サブクエリの列を現在の結果に追加します。

sessionize

ID フィールドと非アクティブギャップによってイベントをセッションにグループ化します。

countFrequent

一意のフィールドと値の組み合わせの近似数を降順にソートして返します。

where

filter コマンドの文法エイリアスとして機能し、同じ構文を受け入れます。

その他の演算と関数

CloudWatch Logs Insightsは、比較、計算、日時、数値、文字列、IP アドレス、一般的な関数と演算も多数サポートしています。

以下のセクションでは、CloudWatch Logs Insights のクエリコマンドについてさらに詳しく説明します。