我有集成了 Sentry 的 React Native 应用程序。我将 Sentry 的 Performance 与自动检测结合使用,以测量反应导航库中的屏幕加载时间。有什么方法可以将
app.start.cold
span 从交易列表的 p50 或 p95 计算中排除吗?我只对 navigation
操作的时间感兴趣,但 p95 显示从应用程序冷启动开始的持续时间(即列表中第一个事务的 15.60 秒),这对我来说没有意义。有没有办法改变它并仅显示navigation
跨度的持续时间?
如果您不想看到
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
衡量屏幕加载时间的标准时间是多少?