如何在 Sentry 中从持续时间中排除应用程序冷启动

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

我有集成了 Sentry 的 React Native 应用程序。我将 Sentry 的 Performance 与自动检测结合使用,以测量反应导航库中的屏幕加载时间。有什么方法可以将

app.start.cold
span 从交易列表的 p50 或 p95 计算中排除吗?我只对
navigation
操作的时间感兴趣,但 p95 显示从应用程序冷启动开始的持续时间(即列表中第一个事务的 15.60 秒),这对我来说没有意义。有没有办法改变它并仅显示
navigation
跨度的持续时间?

react-native sentry react-native-sentry
2个回答
2
投票

如果您不想看到

app.start.*
范围,您可以在 SDK 中禁用应用程序启动跟踪。

Sentry.init({
  dsn: __YOUR_DSN__,
  integrations: [
    new Sentry.ReactNativeTracing({
      enableAppStartTracking: false,
      // ... other options
    }),
  ],
  // ...
});

或者您可以保持应用程序启动跟踪并删除

beforeSendTransaction
回调中的跨度,这样您仍然可以在测量中获得有关应用程序启动的信息。

请注意,这可能会导致数据不准确,因为事务会在应用程序启动后被修剪到第一个跨度的开始处。

  beforeSendTransaction(event, hint) {
    let spanIndexToDelete = null;
    let newTransactionStart: number | null = null;
    event.spans?.forEach((span, index) => {
      if (span.op?.startsWith('app.start')) {
        spanIndexToDelete = index;
      } else {
        if (newTransactionStart === null) {
          newTransactionStart = span.startTimestamp;
        } else if (newTransactionStart > span.startTimestamp) {
          newTransactionStart = span.startTimestamp;
        }
      }
    });
    if (newTransactionStart) {
      event.start_timestamp = newTransactionStart;
    }
    spanIndexToDelete && event.spans?.splice(spanIndexToDelete, 1);
    return event;
  },

有关回调的更多信息https://docs.sentry.io/platforms/react-native/configuration/options/#before-send-transaction


0
投票

衡量屏幕加载时间的标准时间是多少?

© www.soinside.com 2019 - 2024. All rights reserved.