SuperAPI AI 工具集

dotnet-observability

部署与运维

查看项目

更新于 10-16 02:33

技能介绍

用途:为 .NET 应用引入现代可观测性,基于 OpenTelemetry 统一采集追踪(traces)、指标(metrics)和日志(logs),并配置健康检查与自定义指标。

主要能力:

  • OpenTelemetry 追踪、指标、日志的接入与导出;
  • 健康检查端点及存活(liveness)/就绪(readiness)模式;
  • 使用 System.Diagnostics.Metrics 定义自定义指标;
  • 结构化日志与 OTel 导出集成。

使用方式:安装核心包,如 OpenTelemetry.Extensions.Hosting、OpenTelemetry.Instrumentation.AspNetCore、OpenTelemetry.Instrumentation.Http、OpenTelemetry.Instrumentation.Runtime、OpenTelemetry.Exporter.OpenTelemetryProtocol。非 Aspire 应用通过 builder.Services.AddOpenTelemetry() 配置资源、追踪与指标,并调用 AddOtlpExporter()。若使用 .NET Aspire,ServiceDefaults 会自动配置,无需手动重复。OTLP 端点、服务名和资源属性通过环境变量配置,例如 OTEL_EXPORTER_OTLP_ENDPOINT、OTEL_SERVICE_NAME、OTEL_RESOURCE_ATTRIBUTES。

适用场景:需要厂商中立、可对接任意后端(如 Prometheus、Grafana、Datadog、Azure Monitor、AWS X-Ray)的 .NET 服务可观测性建设。

限制与注意:不在 DI 服务中直接用 new 创建 Meter,应使用 IMeterFactory;存活检查不应包含依赖健康检查;避免字符串拼接或插值日志,应使用结构化日志模板;生产环境 OTLP 端点用环境变量而非硬编码;自定义 ActivitySource 需通过 .AddSource() 注册。DI 生命周期、异步模式、可观测性输出测试、中间件管道等不在本技能范围内。详细代码示例见该技能目录下的 examples.md。