OpenTelemetry.Extensions
                             
                            
                                1.13.0-beta.1
                            
                        
                            
                                
                                
                                    Prefix Reserved
                                
                            
                    dotnet add package OpenTelemetry.Extensions --version 1.13.0-beta.1
NuGet\Install-Package OpenTelemetry.Extensions -Version 1.13.0-beta.1
<PackageReference Include="OpenTelemetry.Extensions" Version="1.13.0-beta.1" />
<PackageVersion Include="OpenTelemetry.Extensions" Version="1.13.0-beta.1" />
<PackageReference Include="OpenTelemetry.Extensions" />
paket add OpenTelemetry.Extensions --version 1.13.0-beta.1
#r "nuget: OpenTelemetry.Extensions, 1.13.0-beta.1"
#:package OpenTelemetry.Extensions@1.13.0-beta.1
#addin nuget:?package=OpenTelemetry.Extensions&version=1.13.0-beta.1&prerelease
#tool nuget:?package=OpenTelemetry.Extensions&version=1.13.0-beta.1&prerelease
OpenTelemetry .NET SDK preview features and extensions
| Status | |
|---|---|
| Stability | Beta | 
| Code Owners | @mikegoldsmith | 
Contains useful features and extensions to the OpenTelemetry .NET SDK that are not part of the official OpenTelemetry specification but might be added in the future.
Logging
AttachLogsToActivityEvent
Adds a log processor which will convert log messages into events and attach them
to the currently running Activity.
AddBaggageProcessor
Adds a log processor which will copy baggage entries to log records. The method takes an optional predicate to filter the copied baggage entries based on the entry key. If no predicate is provided, all entries are copied.
Example of AddBaggageProcessor usage with a predicate:
var regex = new Regex("^allow", RegexOptions.Compiled);
using var loggerFactory = LoggerFactory.Create(builder => builder
.AddOpenTelemetry(options =>
{
    options.AddBaggageProcessor(regex.IsMatch);
    // other set up (exporters, processors)
})
Warning: The baggage key predicate is executed for every baggage entry for each log record. Do not use slow or intensive operations.
Traces
AutoFlushActivityProcessor
Processor that flushes its containing TracerProvider if an ended Activity
matches a predicate. Note that this processor must be added after exporter
related Activity processors.
Example of AutoFlushActivityProcessor usage:
public static TracerProviderBuilder AddMyExporter(this TracerProviderBuilder builder, MyExporterOptions options)
{
    return builder
        .AddProcessor(new BatchActivityExportProcessor(
                    new MyExporter(options),
                    options.BatchExportProcessorOptions.MaxQueueSize,
                    options.BatchExportProcessorOptions.ScheduledDelayMilliseconds,
                    options.BatchExportProcessorOptions.ExporterTimeoutMilliseconds,
                    options.BatchExportProcessorOptions.MaxExportBatchSize))
        .AddAutoFlushActivityProcessor(a => a.Parent == null && (a.Kind == ActivityKind.Server || a.Kind == ActivityKind.Consumer), 5000);
}
BaggageActivityProcessor
The BaggageActivityProcessor reads entries stored in Baggage from the current Baggage
and adds the baggage keys and values to the Activity as tags (attributes) on start.
Add this activity processor to a tracer provider.
For example, to add all baggage entries to new activities:
var tracerProvider = Sdk.CreateTracerProviderBuilder()
    .AddBaggageActivityProcessor(BaggageActivityProcessor.AllowAllBaggageKeys)
    .Build();
Alternatively, you can select which baggage keys you want to copy using a custom predicate function.
For example, to only copy baggage entries where the key start with my-key
using a custom function:
var tracerProvider = Sdk.CreateTracerProviderBuilder()
  .AddBaggageActivityProcessor((baggageKey) => baggageKey.StartWith("my-key", System.StringComparison.Ordinal))
  .Build();
For example, to only copy baggage entries where the key matches the regular
expression ^my-key:
var baggageKeyRegex = new Regex("^mykey", RegexOptions.Compiled);
var tracerProvider = Sdk.CreateTracerProviderBuilder()
  .AddBaggageActivityProcessor((baggageKey) => baggageKeyRegex.IsMatch(baggageKey))
  .Build();
Warning: The baggage key predicate is executed for every baggage entry for each started activity. Do not use slow or intensive operations.
RateLimitingSampler
The rate limiting sampler is a sampler that will limit the number of samples to the specified rate per second. It is typically used in conjunction with the ParentBasedSampler to ensure that the rate limiting sampler is only applied to the root spans. When using the ParentBasedSampler, when an Activity creation request comes in without a sampling decision, it will delegate to the rate limiting sampler which will make a decision based on the rate limit, that way all spans in the trace will use the same sampling decision, and the rate will effectively become the number of traces per second, irrespective of the number of spans within each trace.
Example of RateLimitingSampler usage:
builder.Services.AddOpenTelemetry()
    .WithTracing(tracing =>
    {
        tracing.AddAspNetCoreInstrumentation()
            .AddHttpClientInstrumentation()
            // Add the rate limiting sampler with a limit of 3 traces per second
            .SetSampler(new ParentBasedSampler(new RateLimitingSampler(3)))
    });
| Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. | 
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. | 
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. | 
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. | 
| MonoAndroid | monoandroid was computed. | 
| MonoMac | monomac was computed. | 
| MonoTouch | monotouch was computed. | 
| Tizen | tizen40 was computed. tizen60 was computed. | 
| Xamarin.iOS | xamarinios was computed. | 
| Xamarin.Mac | xamarinmac was computed. | 
| Xamarin.TVOS | xamarintvos was computed. | 
| Xamarin.WatchOS | xamarinwatchos was computed. | 
- 
                                                    .NETFramework 4.6.2- OpenTelemetry (>= 1.13.1 && < 2.0.0)
 
- 
                                                    .NETStandard 2.0- OpenTelemetry (>= 1.13.1 && < 2.0.0)
 
- 
                                                    net8.0- OpenTelemetry (>= 1.13.1 && < 2.0.0)
 
NuGet packages (1)
Showing the top 1 NuGet packages that depend on OpenTelemetry.Extensions:
| Package | Downloads | 
|---|---|
| TripleSix.Core Package Description | 
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on OpenTelemetry.Extensions:
| Repository | Stars | 
|---|---|
| microsoft/dotnet-podcasts 
                                                            .NET reference application shown at .NET Conf featuring ASP.NET Core, Blazor, .NET MAUI, Microservices, Orleans, Playwright, and more!
                                                         | 
| Version | Downloads | Last Updated | 
|---|---|---|
| 1.13.0-beta.1 | 690 | 10/23/2025 | 
| 1.11.0-beta.1 | 191,029 | 3/5/2025 | 
| 1.10.0-beta.1 | 612,026 | 12/30/2024 | 
| 1.0.0-beta.5 | 592,491 | 5/8/2024 | 
| 1.0.0-beta.4 | 231,866 | 2/28/2023 | 
| 1.0.0-beta.3 | 24,227 | 11/9/2022 |