如何解决GCP Stackdriver自定义标签
我正在开发一个将日志发送到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表示形式中的一个字段。在结果面板中,选择将字段添加到摘要行
要获取有关此主题的更多信息,请参阅此link
另外,我发现为产品团队打开了一个feature request,在这种情况下,用户希望通过Dataflow作业自定义标签在Stackdriver中进行过滤,该参考可能对您的用例有用,没有ETA被共享,也不保证其实施
,我已代表您向产品团队提交了功能请求,他们将评估实现适合您的用例的功能的可能性,您可以继续进行此PIT [1],在此您可以也可以从团队那里获得更多更新。
请记住,没有ETA,也不能保证会实施。但是,请随时直接在PIT上要求更新,如果您的回答被接受,对您有帮助,我将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。