Quartz.OpenTelemetry.Instrumentation 提供与 OpenTelemetry 的集成。

提示

需要 Quartz 3.1 或更高版本。

警告

集成库仍然可以存活一段时间,因此集成 API 可以有重大更改和更改行为。

安装

您需要将 NuGet 包引用添加到使用 Quartz 的项目中。

  1. Install-Package Quartz.OpenTelemetry.Instrumentation

为 exporter 安装软件包以在某处实际获得结果也是有意义的。

使用

您可以通过在 TracerProviderBuilder 上调用扩展方法 AddQuartzInstrumentation 来添加 Quartz 配置。

在下一个示例中,我们将与 Jaeger 集成。 我们希望您还安装了依赖项:

您可以使用以下命令通过 docker 运行本地 Jaeger:

  1. $ docker run -d --name jaeger \
  2. -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
  3. -p 5775:5775/udp \
  4. -p 6831:6831/udp \
  5. -p 6832:6832/udp \
  6. -p 5778:5778 \
  7. -p 16686:16686 \
  8. -p 14268:14268 \
  9. -p 14250:14250 \
  10. -p 9411:9411 \
  11. jaegertracing/all-in-one:1.18

示例 Startup.ConfigureServices 配置

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. // 确保在 quartz 服务之前配置日志记录和打开遥测
  4. services.AddOpenTelemetry(builder =>
  5. {
  6. builder
  7. .AddQuartzInstrumentation()
  8. .UseJaegerExporter(o =>
  9. {
  10. o.ServiceName = "My Software Name";
  11. // 这些是默认值
  12. o.AgentHost = "localhost";
  13. o.AgentPort = 6831;
  14. });
  15. });
  16. }