GCP Stackdriver 自定义标签

GCP Stackdriver custom tags

我正在开发一个将日志发送到 GCP StackDriver 的应用程序。我想在我的日志条目上本地放置自定义“标签”(或摘要字段)。我正在寻找一种不依赖于在控制台中定义自定义摘要字段的解决方案,因为它们不是永久性的,也不是项目范围内的。

我发现有些记录器显示了标签。例如,GCF 日志将显示其 execution_id。使用以下代码片段,我可以验证显示的标签是否取决于记录器的名称:

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 作为标签。但是我找不到指定自己资源的方法。

有人对这类问题有经验吗?

提前致谢

我找到的最接近的解决方案是在展开的日志条目中,单击 JSON 表示中的字段。在结果面板中,select 将字段添加到摘要行,

要获取有关此主题的更多信息,请参阅此 link

此外,我发现了一个为产品团队打开的 feature request,在这种情况下,用户希望通过 Dataflow 作业自定义标签在 Stackdriver 中过滤掉,参考可能对您的用例有用,没有共享预计到达时间,也不保证其实施

我已代表您向产品团队提交了功能请求,他们将评估实现适合您的用例的功能的可能性,您可以跟进此 PIT [1],您将在那里也能够收到团队的进一步更新。

请记住,没有预计到达时间,也不保证一定会实施。但是,请随时直接在 PIT 上询问更新,如果您接受我的回答,如果对您有帮助,我将不胜感激。

[1]https://issuetracker.google.com/172667238