Quartz OpenTelemetry 集成包

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

提示 要求 Quartz 3.1 或更高版本。

警告 集成库可能仍处于快速发展阶段,因此集成 API 可能会有破坏性变更并改变行为。

安装

你需要在使用 Quartz 的项目中添加 NuGet 包引用。

Install-Package Quartz.OpenTelemetry.Instrumentation

同时,安装导出器包以实际获取结果也是有意义的。

使用

你可以通过在 TracerProviderBuilder 上调用扩展方法 AddQuartzInstrumentation 来添加 Quartz 配置。 在下一个示例中,我们将与 Jaeger 集成。我们假设你已安装以下依赖项:

你可以通过 Docker 运行本地 Jaeger 实例:

$ docker run -d --name jaeger \
    -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
    -p 5775:5775/udp \
    -p 6831:6831/udp \
    -p 6832:6832/udp \
    -p 5778:5778 \
    -p 16686:16686 \
    -p 14268:14268 \
    -p 14250:14250 \
    -p 9411:9411 \
    jaegertracing/all-in-one:1.18

示例 Startup.ConfigureServices 配置

public void ConfigureServices(IServiceCollection services) 
{
    // 确保在配置 Quartz 之前配置日志记录和 OpenTelemetry
    services.AddOpenTelemetry(builder => 
    {
        builder
            .AddQuartzInstrumentation()
            .UseJaegerExporter(o => {
                o.ServiceName = "我的软件名称";
                // 这些是默认值
                o.AgentHost = "localhost";
                o.AgentPort = 6831;
            });
    });
}
在本文档中