如何使用 Application Insights 监控 .NET 微服务?

来源:这里教程网 时间:2026-02-21 17:27:00 作者:

要使用 Application Insights 监控 .NET 微服务,核心是集成 SDK、配置遥测收集,并在微服务架构中实现分布式跟踪。只要正确设置,就能实时掌握服务健康状况、性能瓶颈和异常情况。

启用 Application Insights SDK

在每个 .NET 微服务项目中启用 Application Insights,最简单的方式是通过 NuGet 安装 SDK 包:

安装 Microsoft.ApplicationInsights.AspNetCore 包(适用于 ASP.NET Core 服务) Program.csStartup.cs 中调用
AddApplicationInsightsTelemetry()
确保 appsettings.json 中包含有效的 Instrumentation Key 或连接字符串 例如:
builder.Services.AddApplicationInsightsTelemetry("your-instrumentation-key");

自动收集常见遥测数据

启用后,SDK 会自动收集以下信息:

请求:HTTP 入站请求的路径、响应时间、状态码 依赖项:对外部服务、数据库、Azure 服务的调用 日志:通过 ILogger 写入的日志会自动发送到 Application Insights 异常:未处理的异常会被捕获并上报 性能计数器:CPU、内存、请求率等基础指标

这些数据无需额外编码即可在 Azure 门户中查看。

实现分布式跟踪

在微服务间追踪请求流,需要确保请求上下文正确传递:

使用 W3C Trace Context 标准(默认启用) 出站 HTTP 调用建议使用 HttpClient 并配合 Microsoft.Extensions.Http 集成 确保请求头中的
traceparent
tracestate
正确传播
跨服务调用时,Application Insights 会自动关联请求与依赖项,形成完整的调用链

在“应用映射”视图中,你可以直观看到服务之间的调用关系和延迟分布。

自定义遥测与业务监控

除了自动收集的数据,你还可以添加业务相关的监控:

注入 TelemetryClient 实例,手动发送事件或度量值 记录关键业务操作,如订单创建、支付完成等 使用
TrackEvent()
GetMetric().TrackValue()
上报自定义数据
为遥测添加自定义属性,便于后续查询和分组分析 示例:
_telemetryClient.TrackEvent("OrderSubmitted", new Dictionary<string, string> { ["UserId"] = userId });

基本上就这些。只要每个服务都接入 Application Insights,并保持上下文传播一致,就能获得端到端的可观测性。关键是配置准确、遥测丰富、调用链完整。不复杂但容易忽略细节。

相关推荐