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.

  • IProvideEffectiveConfig together with IOpAmpClient.NotifyEffectiveConfigChanged() reports the effective configuration.
  • IProvideRemoteConfigStatus together with IOpAmpClient.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, or Microsoft.Data.SqlClient was 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 UnsafeAccessorTypeAttribute metadata on .NET 10 and later.

Upgrade notes

  • Breaking: IContinuousProfilerExporter.ExportThreadSamples now requires the CPU sampling interval of each batch as a uint argument, in milliseconds. If you implement a custom profiler exporter, update the signature.
  • Plugin configuration support for RuntimeInstrumentationOptions was removed. The options were always a no op and are deprecated in the OpenTelemetry.Instrumentation.Runtime package.
  • Core components moved to 1.20.1. Most instrumentation packages followed, for example OpenTelemetry.Instrumentation.Http and OpenTelemetry.Instrumentation.SqlClient now sit at 1.20.1. On .NET Framework, the Microsoft.Extensions packages went from 10.0.12 to 10.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

← All updates