You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Sentry未将ASP.NET Core API调用注册为Transactions?

Sentry 异常上报正常但无API请求事务记录排查方案

问题描述

集成Sentry的ASP.NET Core项目,Sentry初始化配置如下:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseSentry(options =>
            {
                options.Dsn = Environment.GetEnvironmentVariable("SENTRY_DSN");
                options.Debug = true;
            });
        });
}

实际运行时所有异常都可以正常上报到Sentry生成Issues,但无论发起多少次REST API调用,Sentry后台都查不到对应的性能事务(Transactions)记录,和官方文档描述的默认配置行为不符。

解决方案

按优先级依次排查以下问题:

  • 检查Nuget包版本:性能事务上报能力从Sentry.AspNetCore 3.0.0版本才开始正式支持,如果当前项目引用的是2.x及更早版本,先把包升级到最新稳定版再验证。
  • 显式配置事务采样率:这是最常见的踩坑点——SDK默认的TracesSampleRate值为0,也就是默认完全不采样、不上报任何性能事务,文档没有把这个默认值放在显眼位置说明。你只需要在Sentry配置项里显式指定采样率即可,比如全量采样配置如下:
    webBuilder.UseSentry(options =>
    {
        options.Dsn = Environment.GetEnvironmentVariable("SENTRY_DSN");
        options.Debug = true;
        // 1.0代表100%采样所有请求,生产环境可按需调整为0.1~0.5之间的数值
        options.TracesSampleRate = 1.0;
    });
    
  • 排查配置覆盖逻辑:如果项目同时通过appsettings.json、环境变量或者自定义TracesSampler回调做了Sentry配置,确认没有把采样率设为0、或者在回调逻辑里把所有API请求的事务都标记为丢弃。
  • 查看Debug日志定位问题:你已经开启了options.Debug = true,发起请求时直接看应用控制台的Sentry日志即可,日志会明确打印事务是被采样规则丢弃、还是上报失败——比如对应Sentry项目没开通性能监控功能、网络出口拦截了性能上报请求、DSN权限不足这类问题,都会在Debug日志里有明确报错。
  • 检查Sentry后台规则:如果本地日志显示事务已经成功上报,去Sentry后台对应项目的性能设置页检查,确认没有配置服务端过滤、采样规则,把收到的事务直接丢弃。

内容的提问来源于stack exchange,提问作者adamsfamily

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 23:24:26