答案:集成Application Insights需在.NET微服务中安装SDK并配置遥测,自动收集请求、依赖项、日志和异常等数据,通过W3C标准实现分布式跟踪,确保traceparent头传递以形成完整调用链,同时可自定义事件和指标监控业务操作,最终在Azure门户实现端到端可观测性。

要使用 Application Insights 监控 .NET 微服务,核心是集成 SDK、配置遥测收集,并在微服务架构中实现分布式跟踪。只要正确设置,就能实时掌握服务健康状况、性能瓶颈和异常情况。
启用 Application Insights SDK
在每个 .NET 微服务项目中启用 Application Insights,最简单的方式是通过 NuGet 安装 SDK 包:
- 安装 Microsoft.ApplicationInsights.AspNetCore 包(适用于 ASP.NET Core 服务)
- 在 Program.cs 或 Startup.cs 中调用
AddApplicationInsightsTelemetry() - 确保 appsettings.json 中包含有效的 Instrumentation Key 或连接字符串
builder.Services.AddApplicationInsightsTelemetry("your-instrumentation-key");
自动收集常见遥测数据
启用后,SDK 会自动收集以下信息:
- 请求:HTTP 入站请求的路径、响应时间、状态码
- 依赖项:对外部服务、数据库、Azure 服务的调用
- 日志:通过 ILogger 写入的日志会自动发送到 Application Insights
- 异常:未处理的异常会被捕获并上报
- 性能计数器:CPU、内存、请求率等基础指标
这些数据无需额外编码即可在 Azure 门户中查看。
实现分布式跟踪
在微服务间追踪请求流,需要确保请求上下文正确传递:
艾零三(a03web)企业网站系统免费版,本系统特点为后台有可视化的用户控件引用功能,无需编程即可使用丰富的企业网站功能,此版本为免费版,无任何功能限制。 系统环境 asp.net2.0+access,发布包中包含一个微服务器环境,不需要装Microsoft .NET Framework v2.0 也可以访问网站。 艾零三(a03web)企业网站系统包含功能有: 网站单页资料模块:可在后台分组设立
- 使用 W3C Trace Context 标准(默认启用)
- 出站 HTTP 调用建议使用 HttpClient 并配合 Microsoft.Extensions.Http 集成
- 确保请求头中的
traceparent和tracestate正确传播 - 跨服务调用时,Application Insights 会自动关联请求与依赖项,形成完整的调用链
在“应用映射”视图中,你可以直观看到服务之间的调用关系和延迟分布。
自定义遥测与业务监控
除了自动收集的数据,你还可以添加业务相关的监控:
- 注入 TelemetryClient 实例,手动发送事件或度量值
- 记录关键业务操作,如订单创建、支付完成等
- 使用
TrackEvent()或GetMetric().TrackValue()上报自定义数据 - 为遥测添加自定义属性,便于后续查询和分组分析
_telemetryClient.TrackEvent("OrderSubmitted", new Dictionary { ["UserId"] = userId });
基本上就这些。只要每个服务都接入 Application Insights,并保持上下文传播一致,就能获得端到端的可观测性。关键是配置准确、遥测丰富、调用链完整。不复杂但容易忽略细节。









