ログのフィルター処理
ロギングサービスは、構造化されたログを簡単にフィルター処理できるカスタムクエリ言語をサポートします。このセクションでは、クエリ言語の構文と使用方法を説明し、開始に役立ついくつかの例を提供します。
基本的な構文と演算子
フィルタークエリは、1 つ以上の条件から構成されます。条件の基本構文は、以下のコンポーネントから構成されます。
コンポーネント | 条件 |
---|---|
フィールド | フィルター処理する severityText 、body 、logAttributes などのフィールド。 |
演算子 | サポートされる演算子の 1 つ。以下の演算子の表を参照してください。 |
値 | フィールドと比較する値。 |
サポートされる演算子のリストについては、以下の表を参照してください。
演算子 | 意味 |
---|---|
= | 等しい |
!= | 等しくない |
~= | 含む (body でのみ使用可能) |
!~= | 含まない (body でのみ使用可能) |
\> | より大きい |
< | より小さい |
<= | 以下 |
\>= | 以上 |
ブーリアン式とグループ化
ブーリアン式とかっこを使用したグループ化を使用して、複雑なフィルタークエリを作成できます。これにより、複数の条件を組み合わせて正確なフィルターを作成できます。
ブーリアン式 | 意味 |
---|---|
AND または && | 両辺の条件が両方とも true である必要があります。 |
OR または || | 両辺の条件の少なくとも 1 つが true である必要があります。 |
グループ化 | かっこ ( と ) を使用して式をグループ化し、評価の順序をコントロールします。 |
クエリの記述を単純化するために、改行もブーリアン AND
として解釈されます。これは、すべてを照合する必要がある場合に、行ごとに 1 つの条件を記述できることを意味します。
フィルタークエリの例
特定の重大度レベルのすべてのログを選択します。
severityText = "ERROR"
特定の重大度レベルより上のすべてのログを Cloud Code から選択します (改行は AND として扱われます)。
resourceAttributes.service.name = "cloud-code"
severityNumber >= 12
メッセージ内の特定の単語を含むログを除外します。
body !~= "healthcheck"
複数の条件とグループ化を組み合わせます (重大度のエイリアスを使用)。
(logAttributes.event.name = "example-event" AND body ~= "timeout") OR (logAttributes.custom.counter > 9000 AND severity = "WARN")
ノート
以下のノートは、フィルタークエリ言語に適用されます。
- 利便性のために
severityText
フィールドもseverity
としてエイリアス化されます - ファジーマッチ演算子 (
= と !=) はbody
フィールドでのみサポートされます logAttributes
キーでは大文字と小文字が区別されますlogAttributes
値は自動的に文字列に変換されます