OpenTelemetry .NET Instrumentation v1.18.0 - OpAMP Plugin Reporting and a Profiler Breaking Change
OpenTelemetry .NET Instrumentation v1.18.0 was published on October 27, 2026. This release extends the experimental OpAMP plugin support, adds scripts for assembly conflicts, and fixes SqlClient tracing gaps. It also contains one breaking change for continuous profiler exporters.
The full release notes and downloads are on the GitHub release page.
OpAMP plugin reporting
Two new experimental features let plugins report back to an OpAMP server.
IProvideEffectiveConfigtogether withIOpAmpClient.NotifyEffectiveConfigChanged()reports the effective configuration.IProvideRemoteConfigStatustogether withIOpAmpClient.NotifyRemoteConfigStatusChanged()reports remote configuration status. Plugins can also opt into receiving remote configuration offers.
The plugin lifecycle was reworked too. Listeners are registered before start, and the manager owns the client lifetime. Only the first configured IOpAmpPlugin controls OpAMP. Startup and cleanup were hardened, including after a plugin configuration failure. All of this is marked experimental, so expect more movement. The OpenTelemetry.OpAmp.Client package moved from 0.7.0-alpha.2 to 0.9.0-alpha.1.
Assembly conflict workaround scripts
Standalone distributions now ship scripts that prepare an on demand DOTNET_ADDITIONAL_DEPS and DOTNET_SHARED_STORE workaround. They build it from the instrumentation dependencies already in the distribution. This helps framework dependent applications when automatic assembly redirection cannot resolve a conflict.
Fixes worth knowing about
- SqlClient traces were missing or incomplete when
System.Data,System.Data.SqlClient, orMicrosoft.Data.SqlClientwas already loaded at startup. That includes .NET Framework apps hosted in IIS. - Invalid plugin type names no longer stop automatic instrumentation or crash .NET Framework applications, unless fail fast is enabled.
- Auto instrumentation messages are no longer written twice to the managed log file. Loader messages are no longer copied into it.
- The native profiler now supports assembly redirection for
UnsafeAccessorTypeAttributemetadata on .NET 10 and later.
Upgrade notes
- Breaking:
IContinuousProfilerExporter.ExportThreadSamplesnow requires the CPU sampling interval of each batch as auintargument, in milliseconds. If you implement a custom profiler exporter, update the signature. - Plugin configuration support for
RuntimeInstrumentationOptionswas removed. The options were always a no op and are deprecated in theOpenTelemetry.Instrumentation.Runtimepackage. - Core components moved to
1.20.1. Most instrumentation packages followed, for exampleOpenTelemetry.Instrumentation.HttpandOpenTelemetry.Instrumentation.SqlClientnow sit at1.20.1. On .NET Framework, the Microsoft.Extensions packages went from10.0.12to10.0.14.
If you run custom plugins, check the OpAMP lifecycle change first. It is the most likely thing to surprise you.
Where to get it
- Release page: v1.18.0 on GitHub
- Repository: https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation
- Tag:
v1.18.0