GKE クラスター上のアプリが断続的にクラッシュしています。Cloud Logging でアプリのエラーログを確認したいと考えています。特定のサービス名(my-service)のログのみをフィルタリングするクエリとして正しいものはどれですか?
- A. service.name="my-service" AND log.level="error"
- B. logName="my-service" AND severity="ERROR"
- C. resource.type="k8s_container" AND resource.labels.container_name="my-service"
- D. container.name="my-service" AND error=true
解答と解説を見る
正解: C
Cloud Logging の GKE コンテナログは resource.type="k8s_container" で識別され、resource.labels.container_name、resource.labels.pod_name、resource.labels.namespace_name などのラベルでフィルタリングできます。エラーに絞る場合は AND severity>="ERROR" を追加します。logName はログバケットやログシンクのパスを指定するフィールドで、サービス名ではありません。service.name は Cloud Logging のクエリ言語では標準的なフィールドとして機能しません。container.name や error=true という構文は Cloud Logging のフィルタ構文として存在しません。