翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ブール、比較、数値、日時、その他の関数
CloudWatch Logs Insights は、以下のセクションで説明するように、クエリ内の他の多くの演算や関数をサポートしています。
算術演算子
算術演算子は、数値データ型を引数として受け入れ、数値結果を返します。算術演算子は、filter
コマンドと fields
コマンドで使用します。また、他の関数の引数としても使用します。
Operation | 説明 |
---|---|
|
加算 |
|
減算 |
|
乗算 |
|
除算 |
|
指数 ( |
|
残余または剰余 ( |
ブール演算子
ブール演算子 and
、or
、および not
を使用します。
注記
ブール演算子は、TRUE または FALSE の値を返す関数でのみ使用します。
比較演算子
比較演算子は、すべてのデータ型を引数として受け入れ、ブール値の結果を返します。比較オペレーションは、filter
コマンドで使用します。また、他の関数の引数としても使用します。
演算子 | 説明 |
---|---|
|
Equal |
|
Not equal |
|
Less than (より小さい) |
|
Greater than (より大きい) |
|
以下 |
|
以上 |
数値演算子
数値オペレーションは、数値データ型を引数として受け入れ、数値結果を返します。数値オペレーションは、filter
コマンドと fields
コマンドで使用します。また、他の関数の引数としても使用します。
Operation | 結果タイプ | 説明 |
---|---|---|
|
数値 |
絶対値 |
|
数値 |
上限 ( |
|
数値 |
下限 ( |
|
数値 |
最大値を返します |
|
数値 |
最小値を返します |
|
数値 |
自然対数 |
|
数値 |
平方根 |
構造タイプ
マップまたはリストは、CloudWatch Logs Insights の構造タイプであり、クエリの属性にアクセスして使用できます。
例: マップまたはリストを取得するには
jsonParse
を使用して、JSON 文字列であるフィールドをマップまたはリストに解析します。
fields jsonParse(@message) as json_message
例: 属性にアクセスするには
ドットアクセス演算子 (map.attribute) を使用して、マップ内の項目にアクセスします。マップ内の属性に特殊文字が含まれている場合は、バックティックを使用して属性名 (map.attributes.`special.char`) を囲みます。
fields jsonParse(@message) as json_message | stats count() by json_message.status_code
ブラケットアクセス演算子 (list[index]) を使用して、リスト内の特定の位置にある項目を取得します。
fields jsonParse(@message) as json_message | filter json_message.users[1].action = "PutData"
キー名に特殊文字が含まれている場合は、特殊文字をバックティック (``) でラップします。
fields jsonParse(@message) as json_message | filter json_message.`user.id` = "123"
例: 空の結果
マップとリストは、文字列、数値、および日時関数では null として扱われます。
fields jsonParse(@message) as json_message | display toupper(json_message)
マップとリストを他のフィールドと比較すると、 になりますfalse
。
注記
、dedup
、pattern
、および でのマップsort
とリストstats
の使用はサポートされていません。
日時関数
日時関数
日時関数は、fields
コマンドと filter
コマンドで使用します。また、他の関数の引数としても使用します。これらの関数では、集計関数を使用してクエリの時間バケットを作成します。数値と次のいずれかで構成される期間を使用します。
-
ms
はミリ秒 -
s
は秒 -
m
は分 -
h
は時間
たとえば、10m
は 10 分、1h
は 1 時間です。
注記
日時関数に最適な時間単位を使用します。CloudWatch Logs は、選択した時間単位に従ってリクエストを制限します。例えば、s
を使用するすべてのリクエストの最大値として 60 を上限とします。したがって、bin(300s)
を指定すると、CloudWatch Logs はこれを 60 秒として実際に実装します。60 は 1 分間の秒数であるため、CloudWatch Logs は s
で 60 を超える数値を使用しません。5 分間のバケットを作成するには、代わりに bin(5m)
を使用します。
ms
の上限は 1000、s
と m
の上限は 60、h
の上限は 24 です。
次の表は、クエリコマンドで使用できるさまざまな日付時刻関数のリストを示したものです。このリストには、各関数の結果タイプと説明が記載されています。
ヒント
クエリコマンドを作成するときに、時間間隔セレクタを使用してクエリの対象とする期間を選択できます。例えば、5~30 分間隔、1 時間、3 時間、12 時間間隔、またはカスタム時間枠の期間を設定できます。また、特定の日付の間で期間を指定することもできます。
関数 | 結果タイプ | 説明 |
---|---|---|
|
Timestamp |
これを使用して、複数のログエントリをクエリにまとめることができます。次の例では、1 時間あたりの例外の数を返します。
|
|
Timestamp |
タイムスタンプを特定の期間に切り詰めます。たとえば、 |
|
タイムスタンプ |
タイムスタンプを特定の期間に切り上げ、次に切り詰めます。たとえば、 |
|
タイムスタンプ |
入力フィールドを Unix エポックからのミリ秒数として解釈し、タイムスタンプに変換します。 |
|
数値 |
指定されたフィールドで見つかったタイムスタンプを、Unix エポックからのミリ秒を表す数値に変換します。例えば、 |
|
数値 |
クエリ処理が開始された時刻をエポック秒単位で返します。この関数は引数を取りません。 これを使用して、現在の時刻に従ってクエリ結果をフィルタリングできます。 たとえば、次のクエリは、過去 2 時間の 4xx エラーをすべて返します。
次の の例では、
|
注記
現在、CloudWatch Logs Insights では、可読性のあるタイムスタンプが記録されているログのフィルタリングをサポートしていません。
一般関数
一般関数
一般関数は、fields
コマンドと filter
コマンドで使用します。また、他の関数の引数としても使用します。
関数 | 結果タイプ | 説明 |
---|---|---|
|
ブール値 |
フィールドが存在する場合は |
|
LogField |
リストから最初の null でない値を返します |
JSON 関数
JSON 関数
fields
および filter
コマンドで JSON 関数を使用し、他の関数の引数として を使用します。
関数 | 結果タイプ | 説明 |
---|---|---|
|
マップ | リスト | 空 |
入力が JSON オブジェクトまたは JSON 配列の文字列表現である場合、マップまたはリストを返します。入力が表現の 1 つでない場合、空の値を返します。 |
|
String |
マップまたはリストデータから JSON 文字列を返します。 |
IP アドレス文字列関数
IP アドレス文字列関数
IP アドレス文字列関数は、filter
コマンドと fields
コマンドで使用します。また、他の関数の引数としても使用します。
関数 | 結果タイプ | 説明 |
---|---|---|
|
ブール型 |
フィールドが有効な IPv4 または IPv6 アドレスである場合、 |
|
ブール型 |
フィールドが有効な IPv4 アドレスである場合、 |
|
ブール型 |
フィールドが有効な IPv6 アドレスである場合、 |
|
ブール型 |
指定された v4 または v6 サブネット内でフィールドが有効な IPv4 または IPv6 アドレスである場合、 |
|
boolean |
指定された v4 サブネット内でフィールドが有効な IPv4 アドレスである場合、 |
|
boolean |
指定された v6 サブネット内でフィールドが有効な IPv6 アドレスである場合、 |
文字列関数
文字列関数
文字列関数は、fields
コマンドと filter
コマンドで使用します。また、他の関数の引数としても使用します。
関数 | 結果タイプ | 説明 |
---|---|---|
|
数値 |
フィールドが欠落しているか、空の文字列である場合、 |
|
数値 |
フィールドが欠落しているか、空の文字列であるか、空白が含まれている場合、 |
|
文字列 |
複数の文字列を連結します。 |
|
文字列 |
関数に 2 番目の文字列引数がない場合、文字列の左側からホワイトスペースを削除します。関数に 2 番目の文字列引数がある場合、ホワイトスペースは削除されません。その場合、 |
|
文字列 |
関数に 2 番目の文字列引数がない場合、文字列の右側からホワイトスペースを削除します。関数に 2 番目の文字列引数がある場合、ホワイトスペースは削除されません。その場合、 |
|
文字列 |
関数に 2 番目の文字列引数がない場合、文字列の両方の端からホワイトスペースを削除します。関数に 2 番目の文字列引数がある場合、ホワイトスペースは削除されません。その場合、 |
|
数値 |
文字列の長さを Unicode コードポイントで返します。 |
|
文字列 |
文字列を大文字に変換します。 |
|
文字列 |
文字列を小文字に変換します。 |
|
文字列 |
数値引数で指定されたインデックスから文字列の末尾までの部分文字列を返します。関数に 2 番目の数値引数がある場合、この引数には取得される部分文字列の長さが含まれます。たとえば、 |
|
文字列 |
例えば、関数 |
|
数値 |
|