【问题标题】:Adding tags for Datadog browser logs为 Datadog 浏览器日志添加标签
【发布时间】:2026-02-08 14:40:01
【问题描述】:

我正在使用 Datadog 来监控我的浏览器控制台日志。我需要为数据狗日志添加不同的标签。我发现的唯一选择是向我的记录器添加属性,

DD_LOGS.addContext('referrer', document.referrer);

前端客户端应用程序有什么方法可以在 datadog 中添加标签吗?或者Datadog中的属性和标签是否相同

【问题讨论】:

    标签: datadog


    【解决方案1】:

    在 Datadog Logs 中,与执行环境关联的 Tag 和 Log 条目内容上设置的 Attributes 之间存在差异。

    来自this section in the docs

    上下文指的是生成日志的基础架构和应用程序上下文。信息是从标签收集的——无论是自动附加的(主机名、容器名称、日志文件名、无服务器功能名称等)——还是通过日志上的自定义标签(负责团队、环境、应用程序版本等)添加Datadog 代理或日志转发器。

    查看source for the browser SDK,我们可以看到:

    ...
      const tags =
        `sdk_version:${conf.sdkVersion}` +
        `${conf.env ? `,env:${conf.env}` : ''}` +
        `${conf.service ? `,service:${conf.service}` : ''}` +
        `${conf.version ? `,version:${conf.version}` : ''}`
      const datadogHost = `${type}-http-intake.logs.${domain}`
      const host = conf.proxyHost ? conf.proxyHost : datadogHost
      const proxyParameter = conf.proxyHost ? `ddhost=${datadogHost}&` : ''
    
      return `https://${host}/v1/input/${conf.clientToken}?${proxyParameter}ddsource=${source || 'browser'}&ddtags=${tags}`
    ...
    

    这表明我们提交的tags 查询字符串参数是根据配置计算的,并且只提供少量用户可配置的条目,如envservice - 这些是最近发布的版本 1.11.5 - here's the change 介绍它们。

    因此,您可能无法为特定日志条目设置 标签 - 您可以为每个日志条目设置 属性,就像在您分享的示例中一样,即为整个记录器实例设置属性。 属性是日志 Content 的一部分 - 可以在日志条目的正文中查看。

    是的,这很令人困惑,因为使用的函数名为 addContext/setContext - 这些设置与文档的“上下文”不同 - 而是修改了与日志条目关联的属性.

    在这种情况下,您可能希望拥有为该记录器提供特定属性的自定义记录器实例,或者将上下文内联添加到日志条目中,如下所示:

    DD_LOGS.logger.info('Page Viewed', { referrer: document.referrer });
    

    Here's the docs 在此方法中显示每个日志条目设置的其他默认属性。

    【讨论】: