我有以下问题:
抛出未捕获的异常,datadog记录SDK发送请求以记录该事件。
预期结果
发送一个请求/事件,事件仅在Datadog UI中记录一次。
实际结果
Datadog日志SDK发送多个请求/事件(1k-2.5k),该事件在Datadog UI中记录多次。
当禁用Datadog RUM SDK时,则Datadog日志SDK的行为与预期一致。但是,我想同时运行它们,所以目前这不是一个选项。
我使用3.1.3
版本的@datadog/browser-logs
和@datadog/browser-rum
包。
下面是一个截图来说明这个问题:
为一个未捕获的异常示例发送多个请求
这是我用来初始化日志和RUM sdk的代码:
import { datadogLogs } from '@datadog/browser-logs';
import { datadogRum } from '@datadog/browser-rum';
if (process.env.NODE_ENV === 'production' && process.env.DATADOG_CLIENT_TOKEN) {
const environment = getEnvironment();
const config = {
site: 'datadoghq.eu',
clientToken: process.env.DATADOG_CLIENT_TOKEN,
service: typeof DATADOG_SERVICE !== 'undefined' ? DATADOG_SERVICE : undefined,
env: environment ? `${environment}` : undefined,
proxyHost: process.env.PROXY_HOST
};
datadogLogs.init(config);
if (process.env.DATADOG_APPLICATION_ID) {
datadogRum.init({
...config,
trackInteractions: true,
applicationId: process.env.DATADOG_APPLICATION_ID
});
datadogRum.setUser({
name: service.getName(),
email: service.getEmail()
});
}
}
我也有同样的问题,升级Datadog Rum和日志到3.6.13为我修复了这个问题:
"@datadog/browser-logs": "^3.6.13",
"@datadog/browser-rum": "^3.6.13",
其他人:
-
使用
localhost
域名,不使用自定义域名。由于某些原因,DD_RUM.getInternalContext()对自定义域名不起作用。 -
安装两个版本的RUM和日志-最新的,可能是相同的版本。如果您需要特定的不同版本,请检查package.lock上的datadog包的依赖包。它可以是不同的,可以抛出错误。