You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary of changes
* Added a new `QuartzDiagnosticObserver` to enable
OTEL instrumentation from Quartz.
* v3 uses a Diagnostic Observer to make Activities.
* v4 uses ActivitySource.
* v4 snapshot generated from version `4.0.0-preview-20250718-1741` of
the library
* Integration is supported for `v3.1` of Quartz.
* Requires `DD_TRACE_OTEL_ENABLED=true` for tracing to work.
* Currently not available for .NET framework due to our
DiagnosticObserver infrastructure not being compatible with .NET
Framework. Will look into expanding support in the future.
* Changes to Activity5
* Added setters to the following properties
* `DisplayName`
* `Kind` - this is private but with bytecode we are able to call the
setter.
## Reason for change
This change enables Datadog APM to trace Quartz.NET job scheduling and execution events, providing observability for background job processing. It expands instrumentation coverage for .NET applications using Quartz, addressing a gap in our supported integrations.
## Implementation details
* We create an Diagnostic Observer to listen on "Quartz" so the built in
OTEL Instrumentation can be used and transformed into a Datadog Span.
## Test coverage
* Tests from v3.1 of Quartz to the latest version
* Tests for upcoming v4 from the prerelease is available and tested on
locally.
## Other details
### Activity Kind Setter
* We used the same implementation as the `opentelemetry-dotnet-contrib`
repo which can be found in this [code
snippet](https://github.com/open-telemetry/opentelemetry-dotnet-contrib/blob/d22fdd94a54d64b311620c4c8e8f49e652f790b2/src/Shared/ActivityInstrumentationHelper.cs#L10)
* since we don't have access to the classes as the contrib repo, we used
bytecode to avoid casting issues.
<!-- ⚠️ Note: where possible, please obtain 2 approvals prior to
merging. Unless CODEOWNERS specifies otherwise, for external teams it is
typically best to have one review from a team member, and one review
from apm-dotnet. Trivial changes do not require 2 reviews. -->
---------
Co-authored-by: Andrew Lock <[email protected]>
Co-authored-by: Steven Bouwkamp <[email protected]>
Co-authored-by: Zach Montoya <[email protected]>
0 commit comments