【问题标题】:GCP Stackdriver custom tagsGCP Stackdriver 自定义代码
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您抽出宝贵时间,但如上所述,我正在寻找一种不依赖汇总字段的解决方案,因为它们不是持久的,也不是项目范围的。我不确定功能请求,因为我可以按自定义标签进行过滤。我可以将“labels.custom_value”放在 Stackdriver 控制台中,它甚至可以使用自动完成功能。
    【解决方案2】:

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

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

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

    【讨论】:

    • 感谢您的功能请求,因为现在似乎没有办法做到这一点,这是我所期望的最好的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2018-07-26
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多