如何在Datadog RUM初始化配置中添加国家标识并实现多环境区分?
Datadog RUM 添加国家标识方案
1. 不能直接在DD_RUM.init中新增country配置
DD_RUM.init的参数是Datadog预定义的,没有内置的country字段,需要通过自定义属性或tags来实现国家标识的添加。
2. 添加国家标识的两种有效方法
方法一:设置全局上下文(Global Context)
在DD_RUM.init完成后,调用DD_RUM.addGlobalContext方法添加国家属性,该属性会附加到所有RUM监控事件中,方便后续筛选分析。方法二:使用自定义Tags
在DD_RUM.init的tags参数中直接传入国家相关的键值对,格式为key:value,同样会被所有事件携带。
3. 无需维护多份脚本文件
不需要为不同国家或环境单独准备脚本,可通过动态逻辑获取用户国家(例如后端接口返回、URL参数、GeoIP解析等),再将值动态注入到配置中即可。
示例代码
<script> (function(h,o,u,n,d) { h=h[d]=h[d]||{q:[],onReady:function(c){h.q.push(c)}} d=o.createElement(u);d.async=1;d.src=n n=o.getElementsByTagName(u)[0];n.parentNode.insertBefore(d,n) })(window,document,'script','https://www.datadoghq-browser-agent.com/datadog-rum-v4.js','DD_RUM') // 动态获取用户国家,实际场景替换为你的获取逻辑(如接口、GeoIP等) const userCountry = 'us'; const currentEnv = 'dev'; DD_RUM.onReady(function() { DD_RUM.init({ clientToken: 'myClientToken', applicationId: 'myAppId', site: 'datadog.com', service: 'my-web-application', env: currentEnv, version: '1.0.0', sampleRate: 100, sessionReplaySampleRate: 100, trackResources: true, trackLongTasks: true, trackInteractions: true, // 方法二:使用tags的写法 // tags: [`country:${userCountry}`, `env:${currentEnv}`] }); // 方法一:添加全局上下文的写法 DD_RUM.addGlobalContext('country', userCountry); }) </script>
后续筛选使用
在Datadog RUM监控视图中,可通过@country:us或country:us(对应tags方式)的语法筛选特定国家的监控数据,结合环境标签@env:dev还能实现多维度筛选。
内容的提问来源于stack exchange,提问作者marhg
相关产品推荐
相关产品推荐

