我正在尝试在我的 GKE 应用程序中使用 GCP 标签,我想记录与 GKE 关联的标签,例如 namespace_name、location、cluster_name、project_id 和 pod_name,但是默认情况下,所有内容都记录在全局资源类型下,并且仅填充 project_id在 GCP 日志查看器中
例子:
我找到了一种将资源类型更改为 k8s_container 并使用 Resource 填充其他标签的方法,但是我似乎无法找到一种方法来填充标签而不直接将值硬编码到应用程序中,请参见下面的示例:
handler = CloudLoggingHandler(client,resource=Resource("k8s_container",labels={
'namespace_name': "my_namespace",
'location': "us-west1",
'cluster_name': "my-cluster",
'project_id': "my-project-id",
'pod_name': "my-pod"
}))
完整的应用程序供参考:
import logging
import google.cloud.logging
from google.cloud.logging.handlers import CloudLoggingHandler
from google.cloud.logging.resource import Resource
client = google.cloud.logging.Client().from_service_account_json(GOOGLE_SA_ACCOUNT)
handler = CloudLoggingHandler(client,resource=Resource("k8s_container",labels={
'namespace_name': "my_namespace",
'location': "us-west1",
'cluster_name': "my-cluster",
'project_id': "my-project-id",
'pod_name': "my-pod"
}))
google.cloud.logging.handlers.setup_logging(handler)
logging.getLogger().setLevel(logging.ERROR)
try:
requests.head('https://www.exampleurladdress.com').status_code == 200
except requests.exceptions.RequestException as err:
logging.error(err
我想知道是否有某种方法可以直接从 GKE 正确填充它们?
谢谢。