OpenSearch PPL 言語 - Amazon CloudWatch Logs

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

OpenSearch PPL 言語

このセクションでは、OpenSearch PPL を使用した CloudWatch Logs のクエリの基本的な概要を示します。PPL を使用すると、パイプ結合コマンドを使用してデータを取得、クエリ、分析できるため、複雑なクエリの理解と構成が容易になります。その構文は Unix パイプに基づいており、データを変換して処理するためのコマンドの連鎖を可能にします。PPL を使用すると、データをフィルタリングして集計し、豊富な数学、文字列、日付、条件付き、その他の関数を分析に使用できます。

OpenSearch PPL は、標準ログクラスのロググループのクエリにのみ使用できます。クエリするロググループを選択するときは、単一のロググループ、プレフィックスを共有するロググループのセット、またはすべてのロググループを選択できます。

注記

CloudWatch Logs でサポートされているすべての OpenSearch PPL クエリコマンドと構文と制限の詳細については、OpenSearch Service デベロッパーガイド」の「サポートされている PPL コマンド」を参照してください。

コマンドまたは関数 クエリの例 説明

fields

fields field1, field2

射影が必要な一連のフィールドを表示します。

結合

LEFT JOIN left=l, right=r on l.id = r.id `join_right_lg` | fields l.field_1, r.field_2

2 つのデータセットを結合します。

この場合、次のようになります。

where field1="success" | where field2 != "i-023fe0a90929d8822" | fields field3, field4, field5,field6 | head 1000

指定した条件に基づいてデータをフィルタリングします。

stats

stats count(), count(field1), min(field1), max(field1), avg(field1) by field2 | head 1000

集計と計算を実行します

parse

parse field1 ".*/(?<field2>[^/]+$)" | where field2 = "requestId" | fields field1, field2 | head 1000

文字列から正規表現 (regex) パターンを抽出し、抽出されたパターンを表示します。抽出されたパターンは、さらに新しいフィールドの作成やデータのフィルタリングに使用できます。

sort

stats count(), count(field1), min(field1) as field1Alias, max(`field1`), avg(`field1`) by field2 | sort -field1Alias | head 1000

表示された結果をフィールド名でソートします。sort -FieldName を使用して降順でソートします。

評価

eval field2 = field1 * 2 | fields field1, field2 | head 20

フィールドの値を変更または処理し、別のフィールドに保存します。これは、列の数学的変更、列への文字列関数の適用、または列への日付関数の適用に役立ちます。

rename

rename field2 as field1 | fields field1;

検索結果の 1 つ以上のフィールドの名前を変更します。

head

fields `@message` | head 20

表示されるクエリ結果を最初の N 行に制限します。

top

top 2 field1 by field2

フィールドの最も頻繁な値を検索します。

重複排除

dedup field1 | fields field1, field2, field3

指定したフィールドに基づいて重複するエントリを削除します。

まれ

rare field1 by field2

フィールドリスト内のすべてのフィールドの最も頻度の低い値を検索します。

subquery

where field_1 IN [ search source= `subquery_lg` | fields field_2 ] | fields id, field_1

PPL ステートメント内で複雑なネストされたクエリを実行します。

トレンドライン

trendline sma(2, field1) as field1Alias

フィールドの移動平均を計算します。

eventStats

eventstats sum(field1) by field2

計算されたサマリー統計を使用してイベントデータを強化します。イベント内の指定されたフィールドを分析し、さまざまな統計測定値を計算し、これらの結果を新しいフィールドとして各元のイベントに追加します。

拡張

eval tags_array_string = json_extract(`@message`, '$.tags')| eval tags_array = json_array(json_extract(tags_string, '$[0]'), json_extract(tags_string, '$[1]'))| expand tags_array as color_tags

複数の値を含むフィールドを別々の行に分割し、指定されたフィールドの値ごとに新しい行を作成します。

fillnull

fields `@timestamp`, error_code, status_code | fillnull using status_code = "UNKNOWN", error_code = "UNKNOWN"

null フィールドに指定した値を入力します。1 つ以上のフィールドで使用できます。

flatten

eval metadata_struct = json_object('size', json_extract(metadata_string, '$.size'), 'color', json_extract(metadata_string, '$.color')) | flatten metadata_struct as (meta_size, meta_color)

フィールドをフラット化します。フィールドは、 struct<?,?>または のタイプである必要がありますarray<struct<?,?>>

cidrmatch

where cidrmatch(ip, '2003:db8::/32') | fields ip

指定された IP アドレスが指定された CIDR 範囲内にあるかどうかを確認します。

フィールド概要

where field1 != 200 | fieldsummary includefields= field1 nulls=true

各フィールドの基本統計 (カウント、個別カウント、最小、最大、平均、stddev、平均) を計算します。

Grok

grok email '.+@%{HOSTNAME:host}' | fields email, host

grok パターンでテキストフィールドを解析し、検索結果に結果を追加します。

文字列関数

eval field1Len = LENGTH(field1) | fields field1Len

PPL クエリ内の文字列およびテキストデータを操作および変換できる PPL の組み込み関数。たとえば、大文字と小文字の変換、文字列の組み合わせ、パーツの抽出、テキストのクリーニングなどです。

日付/時刻関数

eval newDate = ADDDATE(DATE('2020-08-26'), 1) | fields newDate

PPL クエリで日付とタイムスタンプデータを処理および変換するための組み込み関数。例えば、date_add、date_format、 datediff、date-sub、timestampadd、timestampdiff、current_timezone、utc_timestamp、current_date などです。

条件関数

eval field2 = isnull(field1) | fields field2, field1, field3

特定のフィールド条件をチェックし、式を条件付きで評価する組み込み関数。たとえば、field1 が null の場合、field2 を返します。

数学関数

eval field2 = ACOS(field1) | fields field1

PPL クエリで数学的計算と変換を実行するための組み込み関数。例えば、abs (絶対値)、round (四捨五入数値)、sqrt (平方根)、pow (電力計算)、ceil (最も近い整数に切り上げ) などです。

CryptoGraphic 関数

eval crypto = MD5(field)| head 1000

指定されたフィールドのハッシュを計算するには

JSON 関数

eval valid_json = json('[1,2,3,{"f1":1,"f2":[5,6]},4]') | fields valid_json

配列、抽出、検証など、JSON を処理するための組み込み関数。たとえば、json_object、json_array、to_json_string、json_array_length、json_extract、json_keys、json_valid などです。