【发布时间】:2020-11-03 18:26:35
【问题描述】:
我正在开发一个将日志发送到 GCP StackDriver 的应用程序。我想在我的日志条目中本地放置自定义“标签”(或汇总字段)。我正在寻找一种不依赖于在控制台中定义自定义汇总字段的解决方案,因为它们不是永久性的,也不是项目范围的。
我意识到有些记录器显示了标签。例如,GCF 日志将显示其execution_id。使用以下 sn-p,我可以验证显示的标签是否取决于记录器的名称:
from google.cloud import logging
client = logging.Client()
client.logger(name="custom").log_text("foobar", labels={"execution_id": "foo"})
client.logger(name="cloudfunctions.googleapis.com%2Fcloud-functions").log_text("foobar", labels={"execution_id": "foo"})
如果您在“foobar”上过滤您的日志,您会看到只有第二个条目有“foo”作为标签。
该标签与代码中指定的label.execution_id 匹配。问题是,我无法添加自定义标签,如果我添加另一个标签不是execution_id,它不会显示为标签(但仍然可以在日志正文中找到)。
看起来每个被监控的资源都有自己的一组标签,即:BigQuery 资源使用protoPayload.authenticationInfo.principalEmail 作为标签。但是我找不到指定自己的资源的方法。
有人对这类问题有一些经验吗?
提前致谢
【问题讨论】:
标签: python logging google-cloud-platform stackdriver