ログのフィルター処理

ロギングサービスは、構造化されたログを簡単にフィルター処理できるカスタムクエリ言語をサポートします。このセクションでは、クエリ言語の構文と使用方法を説明し、開始に役立ついくつかの例を提供します。

基本的な構文と演算子

フィルタークエリは、1 つ以上の条件から構成されます。条件の基本構文は、以下のコンポーネントから構成されます。

コンポーネント条件
フィールドフィルター処理する severityTextbodylogAttributes などのフィールド。
演算子サポートされる演算子の 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 値は自動的に文字列に変換されます