GCPのログがweb上とapiとで違う

前提

pythonのgcpのsdkを使ってk8sのクラスタで吐かれたGCPのログを取得したいのですが、web上のコンソールとapiで取得したログに違いがあります。

GCPコンソール
https://console.cloud.google.com/logs/query

pythonのapiライブラリ
https://googleapis.dev/python/logging/latest/index.html

GCPのコンソール上で実行するクエリ

resource.type="k8s_container" resource.labels.namespace_name="xxx-namespace" resource.labels.container_name="xxx-container" timestamp>="2022-09-06" timestamp<="2022-09-08"

APIで取得する場合

python

from google.cloud import logging_v2 project_id = "xxx" filter = "resource.type:k8s_container and resource.labels.namespace_name:xxx-namespace and resource.labels.container_name:xxx-container and timestamp>=2022-09-06 and timestamp<=2022-09-08" logging_client = logging_v2.Client(project=project_id)for log in logging_client.list_entries(filter_=filter): write_file("gcp-log.log", log.payload)

上記のスクリプトでいくつかのログは取得できるのですが、GCPのコンソールのクエリで上記のget_logの引数に指定しているfilterと同じ条件でクエリするとapiで取得できなかったログが表示されています。

確認したこと

apiでは取得できず、GCPのコンソール上では表示されているログとどちらの手段でも取得できるログにresource.labels...project_idなどの違いも見当たりませんでした。

version

google-cloud-logging: 3.2.2

どなたかわかる方がいらっしゃいましたらご教授おねがいします。🙇‍♂️

コメントを投稿

0 コメント