用途:为 .NET 应用添加现代可观测性,覆盖追踪、指标、日志三大支柱,结合 OpenTelemetry、Microsoft.Extensions.Diagnostics 与 System.Diagnostics,并给出生产可用的健康检查模式。
主要能力:OpenTelemetry 主机集成与生命周期管理;AspNetCore、HttpClient、Runtime 自动埋点;OTLP(gRPC/HTTP)与 Console 导出;通过环境变量配置导出端点、协议、资源属性与服务名;基于 ActivitySource/Activity 的自定义追踪与 W3C Trace Context 传播(HTTP 自动,消息队列需手动注入/提取);内置指标(如 http.server.request.duration、System.Runtime 指标)与基于 System.Diagnostics.Metrics 的自定义 Counter、Histogram、UpDownCounter;结构化日志与 [LoggerMessage] 源生成器、LoggerMessage.Define 旧写法、日志级别与 appsettings.json 过滤、日志作用域关联;Serilog 集成与 OTLP sink。
使用方式:安装 OpenTelemetry.Extensions.Hosting、Instrumentation.AspNetCore/Http/Runtime、Exporter.OpenTelemetryProtocol 等包;非 Aspire 应用显式调用 AddOpenTelemetry 配置资源、追踪与指标;Aspire 应用使用 ServiceDefaults 自动配置,不要重复手动配置。OTLP 端点可用 OTEL_EXPORTER_OTLP_ENDPOINT 等环境变量设置。
适用场景:需要统一采集 .NET 服务遥测、排查分布式请求、监控运行时与业务指标、规范结构化日志的项目。
限制:不涉及 DI 容器机制与服务生命周期、async/await 模式、可观测性输出的测试、CI/CD 遥测采集集成、中间件管道模式,这些需参考对应技能。具体健康检查实现细节与完整配置示例资料中未完整提供。