ブール、比較、数値、日時、その他の関数 - Amazon CloudWatch Logs

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

ブール、比較、数値、日時、その他の関数

CloudWatch Logs Insights は、次のセクションで説明するように、クエリで他の多くのオペレーションと関数をサポートしています。

算術演算子

算術演算子は、数値データ型を引数として受け入れ、数値結果を返します。算術演算子は、filter コマンドと fields コマンドで使用します。また、他の関数の引数としても使用します。

操作 説明

a + b

加算

a - b

減算

a * b

乗算

a / b

除算

a ^ b

指数 (2 ^ 38 を返します)

a % b

残余または剰余 (10 % 31 を返します)

ブール演算子

ブール演算子 andor、および not を使用します。

注記

ブール演算子は、TRUE または FALSE の値を返す関数でのみ使用します。

比較演算子

比較演算子は、すべてのデータ型を引数として受け入れ、ブール値の結果を返します。比較オペレーションは、filter コマンドで使用します。また、他の関数の引数としても使用します。

演算子 説明

=

Equal

!=

Not equal

<

Less than

>

Greater than

<=

以下

>=

以上

数値演算子

数値オペレーションは、数値データ型を引数として受け入れ、数値結果を返します。数値オペレーションは、filter コマンドと fields コマンドで使用します。また、他の関数の引数としても使用します。

操作 結果タイプ 説明

abs(a: number)

数値

絶対値

ceil(a: number)

数値

上限 (a の値より大きい最小整数) に切り上げられます。

floor(a: number)

数値

下限 (a の値より小さい最大整数) に切り下げられます。

greatest(a: number, ...numbers: number[])

数値

最大値を返します

least(a: number, ...numbers: number[])

数値

最小値を返します

log(a: number)

数値

自然対数

sqrt(a: number)

数値

平方根

日時関数

日時関数

日時関数は、fields コマンドと filter コマンドで使用します。また、他の関数の引数としても使用します。これらの関数では、集計関数を使用してクエリの時間バケットを作成します。数値と次のいずれかで構成される期間を使用します。

  • ms ミリ秒

  • s

  • m 分間

  • h 時間

たとえば、10m は 10 分、1h は 1 時間です。

注記

日時関数に最も適した時間単位を使用します。 CloudWatch ログは、選択した時間単位に従ってリクエストを上限します。例えば、 を使用するすべてのリクエストの最大値として 60 を上限としますs。したがって、 を指定した場合bin(300s)、 CloudWatch Logs はこれを実際に 60 秒として実装します。これは、60 が 1 分間の秒数であるため、 CloudWatch Logs は で 60 を超える数値を使用しませんs。5 分間のバケットを作成するには、bin(5m)代わりに を使用します。

の上限msは 1000、 sと の上限mは 60、 の上限hは 24 です。

次の表は、クエリコマンドで使用できるさまざまな日付時刻関数のリストを示したものです。このリストには、各関数の結果タイプと説明が記載されています。

ヒント

クエリコマンドを作成するときに、時間間隔セレクタを使用してクエリの対象とする期間を選択できます。例えば、5~30 分間隔、1 時間、3 時間、12 時間間隔、またはカスタム時間枠の期間を設定できます。また、特定の日付の間で期間を指定することもできます。

機能 結果タイプ 説明

bin(period: Period)

タイムスタンプ

@timestamp の値を特定の期間に切り上げ、次に切り詰めます。例えば、bin(5m)@timestamp の値を最も近い 5 分に四捨五入します。

これを使用して、複数のログエントリをクエリにまとめることができます。次の例では、1 時間あたりの例外の数を返します。

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

bin 関数では、次の時間単位と略語がサポートされています。複数の文字を含むすべての単位と略語では、s の複数形への追加がサポートされています。したがって、hr および hrs の両方とも時間を指定して機能します。

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

datefloor(timestamp: Timestamp, period: Period)

タイムスタンプ

タイムスタンプを特定の期間に切り詰めます。たとえば、datefloor(@timestamp, 1h)@timestamp のすべての値を 1 時間の下限に切り詰めます。

dateceil(timestamp: Timestamp, period: Period)

タイムスタンプ

タイムスタンプを特定の期間に切り上げ、次に切り詰めます。たとえば、dateceil(@timestamp, 1h)@timestamp のすべての値を 1 時間の上限に切り詰めます。

fromMillis(fieldName: number)

タイムスタンプ

入力フィールドを Unix エポックからのミリ秒数として解釈し、タイムスタンプに変換します。

toMillis(fieldName: Timestamp)

数値

指定されたフィールドで見つかったタイムスタンプを、Unix エポックからのミリ秒を表す数値に変換します。例えば、toMillis(@timestamp) はタイムスタンプを 2022-01-14T13:18:031.000-08:00 から 1642195111000 に変換します。

注記

現在、 CloudWatch Logs Insights は、人間が読み取れるタイムスタンプを使用したログのフィルタリングをサポートしていません。

一般関数

一般関数

一般関数は、fields コマンドと filter コマンドで使用します。また、他の関数の引数としても使用します。

機能 結果タイプ 説明

ispresent(fieldName: LogField)

ブール値

フィールドが存在する場合は true を返します

coalesce(fieldName: LogField, ...fieldNames: LogField[])

LogField

リストから最初の null でない値を返します

IP アドレス文字列関数

IP アドレス文字列関数

IP アドレス文字列関数は、filter コマンドと fields コマンドで使用します。また、他の関数の引数としても使用します。

機能 結果タイプ 説明

isValidIp(fieldName: string)

ブール型

フィールドが有効な IPv4 または IPv6 アドレスである場合、true を返します。

isValidIpV4(fieldName: string)

ブール型

フィールドが有効な IPv4 アドレスである場合、true を返します。

isValidIpV6(fieldName: string)

ブール型

フィールドが有効な IPv6 アドレスである場合、true を返します。

isIpInSubnet(fieldName: string, subnet: string)

ブール型

指定された v4 または v6 サブネット内でフィールドが有効な IPv4 または IPv6 アドレスである場合、true を返します。サブネットを指定するときは、192.0.2.0/24 または 2001:db8::/32 などの CIDR 表記を使用します。192.0.2.0 または 2001:db8:: は CIDR ブロックの開始アドレスです。

isIpv4InSubnet(fieldName: string, subnet: string)

ブール値

指定された v4 サブネット内でフィールドが有効な IPv4 アドレスである場合、true を返します。サブネットを指定するときは、192.0.2.0/24 などの CIDR 表記を使用します。192.0.2.0 は CIDR ブロックの開始アドレスです。

isIpv6InSubnet(fieldName: string, subnet: string)

ブール値

指定された v6 サブネット内でフィールドが有効な IPv6 アドレスである場合、true を返します。サブネットを指定するときは、2001:db8::/32 などの CIDR 表記を使用します。2001:db8:: は CIDR ブロックの開始アドレスです。

文字列関数

文字列関数

文字列関数は、fields コマンドと filter コマンドで使用します。また、他の関数の引数としても使用します。

機能 結果タイプ 説明

isempty(fieldName: string)

フィールドが欠落しているか、空の文字列である場合、1 を返します。

isblank(fieldName: string)

フィールドが欠落しているか、空の文字列であるか、空白が含まれている場合、1 を返します。

concat(str: string, ...strings: string[])

文字列

複数の文字列を連結します。

ltrim(str: string)

ltrim(str: string, trimChars: string)

文字列

関数に 2 番目の文字列引数がない場合、文字列の左側からホワイトスペースを削除します。関数に 2 番目の文字列引数がある場合、ホワイトスペースは削除されません。その場合、strの左から trimChars 個の文字が削除されます。たとえば、ltrim("xyZxyfooxyZ","xyZ")"fooxyZ" を返します。

rtrim(str: string)

rtrim(str: string, trimChars: string)

文字列

関数に 2 番目の文字列引数がない場合、文字列の右側からホワイトスペースを削除します。関数に 2 番目の文字列引数がある場合、ホワイトスペースは削除されません。その場合、strの右から trimChars 個の文字が削除されます。たとえば、rtrim("xyZfooxyxyZ","xyZ")"xyZfoo" を返します。

trim(str: string)

trim(str: string, trimChars: string)

文字列

関数に 2 番目の文字列引数がない場合、文字列の両方の端からホワイトスペースを削除します。関数に 2 番目の文字列引数がある場合、ホワイトスペースは削除されません。その場合、strの両方から trimChars 個の文字が削除されます。たとえば、trim("xyZxyfooxyxyZ","xyZ")"foo" を返します。

strlen(str: string)

数値

文字列の長さを Unicode コードポイントで返します。

toupper(str: string)

文字列

文字列を大文字に変換します。

tolower(str: string)

文字列

文字列を小文字に変換します。

substr(str: string, startIndex: number)

substr(str: string, startIndex: number, length: number)

文字列

数値引数で指定されたインデックスから文字列の末尾までの部分文字列を返します。関数に 2 番目の数値引数がある場合、この引数には取得される部分文字列の長さが含まれます。たとえば、substr("xyZfooxyZ",3, 3)"foo" を返します。

replace(fieldName: string, searchValue: string, replaceValue: string)

文字列

searchValuefieldName: string のすべてのインスタンスを replaceValue に置き換えます。

例えば、関数 replace(logGroup,"smoke_test","Smoke") はフィールド logGroup に文字列値 smoke_test を含むログイベントを検索し、その値を文字列 Smoke に置き換えます。

strcontains(str: string, searchValue: string)

数値

strsearchValue が含まれている場合は 1 を返し、それ以外の場合は 0 を返します。