为Datadog浏览器日志添加标签

时间:2020-05-19 21:19:16

标签: datadog

我正在使用Datadog监视我的浏览器控制台日志。我需要在datadog日志中使用其他标签。我发现的唯一选择是使用

将属性添加到记录器中

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

前端客户端应用程序是否可以在datadog中使用标签?还是Datadog中的属性和标签相同

1 个答案:

答案 0 :(得分:3)

在Datadog日志中,与执行环境关联的标签和在日志条目内容上设置的属性之间存在差异。

来自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对其进行了介绍。

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

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

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

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

Here's the docs(关于此方法),显示每个日志条目还设置了哪些其他默认属性。