Quartz.OpenTelemetry.Instrumentation(opens new window) provides integration with OpenTelemetry(opens 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.

# Installation

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.

# Using

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

In the next example we will integrate with Jaeger(opens 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;