Cloud Loggingのログビューアが新しいUIになり、クエリを書かないといけなくなった
旧UIでは「基本的なクエリ」というクエリセットが用意されていたが、新UIでは旧UIの「高度なクエリ」に該当する自らクエリを書かないといけなくなった
そこで、クエリの書き方について調べた
クエリ構文
論理演算子 AND
と OR
を使用して、次の 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"
ブール演算子
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