Quartz.OpenTelemetry.Instrumentationopen in new window provides integration with OpenTelemetryopen in new window.


Quartz 3.1 or later required.


The integration library can still live a bit and thus integration API can have breaking changes and change behavior.


You need to add NuGet package reference to your project which uses Quartz.

Install-Package Quartz.OpenTelemetry.Instrumentation

It also makes sense to install package for exporter to actually get the results somewhere.


You can add Quartz configuration by invoking an extension method AddQuartzInstrumentation on TracerProviderBuilder.

In the next example we will integrate with Jaegeropen in new window. We expect that you have also installed dependencies:

You can run local Jaeger via docker using:

$ docker run -d --name jaeger \
  -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 \

Example Startup.ConfigureServices configuration

public void ConfigureServices(IServiceCollection services)
    // make sure you configure logging and open telemetry before Quartz services

    services.AddOpenTelemetry(builder =>
            .UseJaegerExporter(o =>
                o.ServiceName = "My Software Name";

                // these are the defaults
                o.AgentHost = "localhost";
                o.AgentPort = 6831;