UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Cloud Logging】ログ検索クエリ

Cloud Loggingのログビューアが新しいUIになり、クエリを書かないといけなくなった

旧UIでは「基本的なクエリ」というクエリセットが用意されていたが、新UIでは旧UIの「高度なクエリ」に該当する自らクエリを書かないといけなくなった

そこで、クエリの書き方について調べた

cloud.google.com

クエリ構文

論理演算子 ANDOR を使用して、次の 4 つの分類項目に基づいたクエリを作成

  1. リソース
  2. ログ名
  3. 重大度
  4. 時間範囲

構文の表記法

  • a = e: 式 e にaという名前をつける
  • a b: a の後に b が続く
  • a | b: a または b
  • ( e ): グループ化
  • [ e ]: e は省略可能
  • { e }: e は 0 回以上繰り返す
  • "abc": 「abc」という記述がある
expression = ["NOT"] comparison { ("AND" | "OR") ["NOT"] comparison }

comparisonに使えるのは、単一の文字列かブール式のいずれか

  • "The cat in the hat"
  • resource.type = "gae_app"

ブール演算子

ブール演算子 AND と OR は短絡評価の演算子

NOT 演算子の優先順位が最も高く、その後に OR と AND が順に続く

次の2つは同じ意味

  • a OR NOT b AND NOT c OR d
  • a OR (NOT b)) AND ((NOT c) OR d)

比較の間の AND 演算子は省略可能

NOT 演算子の代わりに -(マイナス記号)を使用できる

インデックスフィールド検索

Cloud Loggingの旧UIでは「基本的なクエリ」でHTTPステータスでの絞り込みが簡単にできた

新UIでそれをどうやるのか

ドキュメントはこれをみつけた cloud.google.com

結果これを書けば良さそう

httpRequest.status > 200

その他のインデックス フィールドはここで一覧になっている https://cloud.google.com/logging/docs/view/logging-query-language?hl=ja

ドキュメントをみると、もっと柔軟に複雑なことができそうだが、いまは必要としていないので必要になったら調べる

参考

https://cloud.google.com/logging/docs/view/logs-viewer-interface?hl=ja

https://cloud.google.com/logging/docs/view/logging-query-language?hl=ja