ApplicationInsights-dotnet 接入 ASP.NET Core 完整教程:自动追踪 HTTP 请求、SQL 与依赖

发布时间:2026/8/22 12:56:53
ApplicationInsights-dotnet 接入 ASP.NET Core 完整教程:自动追踪 HTTP 请求、SQL 与依赖 ApplicationInsights-dotnet 接入 ASP.NET Core 完整教程自动追踪 HTTP 请求、SQL 与依赖【免费下载链接】ApplicationInsights-dotnetApplicationInsights-dotnet项目地址: https://gitcode.com/gh_mirrors/ap/ApplicationInsights-dotnetApplicationInsights-dotnet是微软官方出品的 .NET 应用性能监控 SDK专为ASP.NET Core等应用提供服务端监控能力。接入后无需手动埋点即可自动追踪 HTTP 请求、SQL 查询和外部依赖调用把请求耗时、状态码、异常堆栈、日志和性能指标自动上报到 Azure Monitor / Application Insights。本教程面向新手带你用最简单的方式完成配置并验证结果。 从 3.x 版本开始SDK 底层完全基于OpenTelemetry构建兼容行业标准生态可灵活对接多种可观测性后端。架构原理可参考 docs/concepts.md。一、开始前的准备工作接入前只需准备两样东西准备项说明Azure 订阅用于创建 Application Insights 资源连接字符串在 Azure 门户中创建 Application Insights 资源后从属性页复制 Connection String⚠️ 注意3.x 版本只使用连接字符串ConnectionString旧的资源 ID 仪表键写法已不再推荐。二、添加 NuGet 包一条命令搞定在 ASP.NET Core 项目目录下执行dotnet add package Microsoft.ApplicationInsights.AspNetCore该包是 ASP.NET Core 场景专用的自动采集包源码位于 NETCORE/src/Microsoft.ApplicationInsights.AspNetCore/官方说明见 NETCORE/Readme.md。三、配置连接字符串3 种方式任选其一方式 1环境变量生产环境推荐设置环境变量APPLICATIONINSIGHTS_CONNECTION_STRING代码中无需写死任何密钥。方式 2appsettings.json在 examples/AspNetCoreWebApp/appsettings.json 中可以找到标准写法{ ApplicationInsights: { ConnectionString: InstrumentationKeyxxx;IngestionEndpointhttps://... } }方式 3代码中直接指定在Program.cs中通过配置选项传入详见 NETCORE/src/Shared/Extensions/ApplicationInsightsExtensions.csbuilder.Services.AddApplicationInsightsTelemetry(options { options.ConnectionString InstrumentationKeyxxx;IngestionEndpointhttps://...; options.TracesPerSecond 5.0; // 速率采样默认每秒 5 条 });四、一行代码启用自动追踪 在Program.cs或旧项目的Startup.cs的服务注册区加入这一行builder.Services.AddApplicationInsightsTelemetry();就这一行HTTP、SQL、依赖、日志、指标的自动采集全部开启。可运行的完整示例见 examples/AspNetCoreWebApp/Startup.cs示例在ConfigureServices中调用AddApplicationInsightsTelemetry()。小技巧重复调用AddApplicationInsightsTelemetry()不会产生重复数据SDK 只创建一套 Provider放心使用。五、自动追踪都包含哪些数据这是整个接入最有价值的部分——零埋点即可拿到完整的链路数据信号自动采集的内容HTTP 请求所有入站请求的耗时、状态码、URL自动串联成调用链依赖调用出站HttpClient请求、Azure SDK 调用️SQL 查询Microsoft.Data.SqlClient/System.Data.SqlClient执行的 SQL 语句与耗时异常未处理异常的完整堆栈自动关联到对应请求日志ILogger输出Information 级别及以上指标请求速率、响应时间、CPU、内存等标准性能计数器.NET 8.0 及以上版本还会自动利用运行时内置的Microsoft.AspNetCore.Hosting与System.Net.HttpMetrics数据更精准。六、如何在 Azure Portal 验证数据启动应用访问几个接口触发 HTTP、SQL 和依赖调用打开 Azure 门户的 Application Insights 资源查看Live Metrics实时度量秒级刷新立即可见查看失败Failures与事务搜索约 2~5 分钟延迟可下钻查看每个请求的完整链路项目内置的集成测试覆盖了连接字符串、采样等多种配置场景可参考 NETCORE/test/IntegrationTests.Tests/其中content/config-connection-string.json是连接字符串配置样例。七、常见问题排查新手必看看不到任何数据首先检查APPLICATIONINSIGHTS_CONNECTION_STRING或appsettings.json是否配置正确ASP.NET Core 3.x 包要求.NET 8.0 及以上运行时升级后报编译错误检查是否存在 2.x 与 3.x 包混用或使用了已移除的 API如InstrumentationKey属性、ITelemetryInitializer迁移指南见 MigrationGuidance.md 与 BreakingChanges.md2.x 老项目如何升级可先阅读 skills/applicationinsights-setup/references/opentelemetry-pipeline.md 了解架构差异再按 skills/applicationinsights-setup/references/code-migration.md 逐步改造八、进阶自定义遥测与扩展发自定义事件/指标在 Controller 中注入TelemetryClient调用TrackEvent()/TrackMetric()即可3.x 中它是兼容层自动转换为 OpenTelemetry 信号过滤与增强数据通过builder.Services.ConfigureOpenTelemetryTracerProvider(...)添加自定义 Processor、采样器甚至增加 gRPC、EF Core、Redis 等第三方 instrumentation接入 AI 智能体辅助配置skills/applicationinsights-setup/SKILL.md 提供了一套可移植的 AI 技能可让 AI 编码助手自动检测应用类型并给出接入/迁移步骤写在最后整个过程可以概括为三步加包 → 配连接字符串 → 调用AddApplicationInsightsTelemetry()。几行代码就能让你的 ASP.NET Core 应用拥有生产级的请求追踪、SQL 监控与依赖分析能力。更详细的配置选项采样策略、实时度量开关、性能计数器开关等请参阅 NETCORE/Readme.md。祝接入顺利监控无忧【免费下载链接】ApplicationInsights-dotnetApplicationInsights-dotnet项目地址: https://gitcode.com/gh_mirrors/ap/ApplicationInsights-dotnet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考