Sentry JS 是否根据采样率过滤消息?

问题描述 投票:0回答:1

我在 JS 应用程序(Web 扩展)中使用 Sentry 来跟踪错误。现在我想要一些错误之前发生的事件的日志,因此我添加了

scope.captureMessage()
调用。

我有一个“beforeSend”回调可以看到并非所有消息都已发送。是因为采样率也应用于消息吗?

这是初始化代码:

  const manifest = browser.runtime.getManifest();

  // filter integrations that use the global variable
  const integrations = getDefaultIntegrations({}).filter(
    (defaultIntegration: { name: string }) => {
      return ![
        "BrowserApiErrors",
        "TryCatch",
        "Breadcrumbs",
        "GlobalHandlers"
      ].includes(defaultIntegration.name);
    }
  );

  const client = new BrowserClient({
    dsn,
    environment,
    release: info.addonVersion,
    transport: makeFetchTransport,
    stackParser: defaultStackParser,
    initialScope: {
      tags: {
        manifestVersion: manifest.manifest_version
      }
    },
    integrations,
    sampleRate: sampleRate ?? 0.01,
    beforeSend(event) {
      console.warn("Event", event);
      lastEvent = event;
      return event;
    }
  });

  scope = new Scope();
  scope.setClient(client);
  client.init();

这是我发送消息的方式:

scope.captureMessage(message);

实际发送的消息很少: enter image description here

如何才能传递所有消息?是否可以将某些“消息采样率”设置为 1?是否可以仅在发生特定错误时才发送消息(以减少流量)? Sentry 消息是否有配额或单位费用限制?

javascript logging sentry
1个回答
0
投票

您无法专门调整消息的采样率,但是,对于您的用例(在错误发生之前进行记录),我建议使用

Sentry.addBreadcrumb()

例如:

Sentry.addBreadcrumb({
  message: 'your log message',
});
© www.soinside.com 2019 - 2024. All rights reserved.