![]() |
VOOZH | about |
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol --version 1.16.0
NuGet\Install-Package OpenTelemetry.Exporter.OpenTelemetryProtocol -Version 1.16.0
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.16.0" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.16.0" />Directory.Packages.props
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />Project file
paket add OpenTelemetry.Exporter.OpenTelemetryProtocol --version 1.16.0
#r "nuget: OpenTelemetry.Exporter.OpenTelemetryProtocol, 1.16.0"
#:package OpenTelemetry.Exporter.OpenTelemetryProtocol@1.16.0
#addin nuget:?package=OpenTelemetry.Exporter.OpenTelemetryProtocol&version=1.16.0Install as a Cake Addin
#tool nuget:?package=OpenTelemetry.Exporter.OpenTelemetryProtocol&version=1.16.0Install as a Cake Tool
The OTLP (OpenTelemetry Protocol) exporter implementation.
<details> <summary>Table of Contents</summary>
</details>
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol
var loggerFactory = LoggerFactory.Create(builder =>
{
builder.AddOpenTelemetry(options =>
{
options.AddOtlpExporter();
});
});
By default, AddOtlpExporter() pairs the OTLP Log Exporter with a batching
processor.
See TestLogs.cs for example on how to
customize the LogRecordExportProcessorOptions or see the Environment
Variables section below on how to customize using
environment variables.
For details on how to configure logging with OpenTelemetry check the Console or ASP.NET Core tutorial.
ILogger Scopes: OTLP Log Exporter supports exporting ILogger scopes as
Attributes. Scopes must be enabled at the SDK level using
IncludeScopes
setting on OpenTelemetryLoggerOptions.
Scope attributes with key set as empty string or {OriginalFormat}
are ignored by exporter. Duplicate keys are exported as is.
This exporter provides AddOtlpExporter() extension method on MeterProviderBuilder
to enable exporting of metrics. The following snippet adds the Exporter with default
configuration.
var meterProvider = Sdk.CreateMeterProviderBuilder()
// rest of config not shown here.
.AddOtlpExporter()
.Build();
By default, AddOtlpExporter() pairs the OTLP MetricExporter with a
PeriodicExportingMetricReader
with metric export interval of 60 secs and
Temporality
set as Cumulative. See
TestMetrics.cs for example on how to
customize the MetricReaderOptions or see the Environment
Variables section below on how to customize using
environment variables.
This exporter provides AddOtlpExporter() extension method on TracerProviderBuilder
to enable exporting of traces. The following snippet adds the Exporter with default
configuration.
var tracerProvider = Sdk.CreateTracerProviderBuilder()
// rest of config not shown here.
.AddOtlpExporter()
.Build();
See the TestOtlpExporter.cs for
runnable example.
Starting with the 1.8.0-beta.1 version you can use the cross-cutting
UseOtlpExporter extension to simplify registration of the OTLP exporter for
all signals (logs, metrics, and traces).
The cross cutting extension is currently only available when using the
AddOpenTelemetry extension in the
OpenTelemetry.Extensions.Hosting
package.
appBuilder.Services.AddOpenTelemetry()
.UseOtlpExporter();
The UseOtlpExporter has the following behaviors:
Calling UseOtlpExporter automatically enables logging, metrics, and tracing
however only telemetry which has been enabled will be exported.
There are different mechanisms available to enable telemetry:
Logging
ILogger telemetry is controlled by category filters typically set through
configuration. For details see: Log
Filtering and
Logging in
.NET.
Metrics
Metrics telemetry is controlled by calling MeterProviderBuilder.AddMeter
to listen to
Meters
emitting metrics. Typically instrumentation packages will make this call
automatically.
Examples:
appBuilder.Services.AddOpenTelemetry()
.UseOtlpExporter()
.WithMetrics(metrics => metrics
.AddMeter(MyMeter.Name) // Listen to custom telemetry
.AddAspNetCoreInstrumentation() // Use instrumentation to listen to telemetry
);
appBuilder.Services.ConfigureOpenTelemetryMeterProvider(metrics => metrics
.AddMeter(MyMeter.Name) // Listen to custom telemetry
.AddAspNetCoreInstrumentation() // Use instrumentation to listen to telemetry
);
appBuilder.Services.AddOpenTelemetry()
.UseOtlpExporter();
For details see: Meter.
When using Microsoft.Extensions.Hosting v8.0.0 or greater (a standard part
of ASP.NET Core) Meters and Instruments can also be enabled using
configuration.
appSettings.json metrics configuration example:
{
"Metrics": {
"EnabledMetrics": {
"Microsoft.AspNetCore.*": true,
"System.*": true,
"MyCompany.*": true,
}
}
}
For details about the built-in metrics exposed by .NET see: Built-in metrics in .NET.
Tracing
Trace telemetry is controlled by calling TracerProviderBuilder.AddSource
to listen to
ActivitySources
emitting traces. Typically instrumentation packages will make this call
automatically.
Examples:
appBuilder.Services.AddOpenTelemetry()
.UseOtlpExporter()
.WithTracing(tracing => tracing
.AddSource(MyActivitySource.Name) // Listen to custom telemetry
.AddAspNetCoreInstrumentation() // Use instrumentation to listen to telemetry
);
appBuilder.Services.ConfigureOpenTelemetryTracerProvider(tracing => tracing
.AddSource(MyActivitySource.Name) // Listen to custom telemetry
.AddAspNetCoreInstrumentation() // Use instrumentation to listen to telemetry
);
appBuilder.Services.AddOpenTelemetry()
.UseOtlpExporter();
For details see: Activity Source.
The exporter registered by UseOtlpExporter will be added as the last
processor in the pipeline established for logging and tracing.
UseOtlpExporter can only be called once. Subsequent calls will result in a
NotSupportedException being thrown.
UseOtlpExporter cannot be called in addition to signal-specific
AddOtlpExporter methods. If UseOtlpExporter is called signal-specific
AddOtlpExporter calls will result in a NotSupportedException being thrown.
UseOtlpExporter supports the full set of environment
variables listed below including the signal-specific
overrides and users are encouraged to use this mechanism to configure their
exporters.
A UseOtlpExporter overload is provided which may be used to set the protocol
and base URL:
appBuilder.Services.AddOpenTelemetry()
.UseOtlpExporter(OtlpExportProtocol.HttpProtobuf, new Uri("http://localhost:4318/"));
When the protocol is set to OtlpExportProtocol.HttpProtobuf a
signal-specific path will be appended automatically to the base URL when
constructing exporters.
You can configure the OtlpExporter through OtlpExporterOptions
and environment variables.
The OtlpExporterOptions type setters take precedence over the environment variables.
This can be achieved by providing an Action<OtlpExporterOptions> delegate to
the AddOtlpExporter() method or using the Configure<OtlpExporterOptions>()
Options API extension:
// Set via delegate using code:
appBuilder.Services.AddOpenTelemetry()
.WithTracing(builder => builder.AddOtlpExporter(o => {
// ...
}));
// Set via Options API using code:
appBuilder.Services.Configure<OtlpExporterOptions>(o => {
// ...
});
// Set via Options API using configuration:
appBuilder.Services.Configure<OtlpExporterOptions>(
appBuilder.Configuration.GetSection("OpenTelemetry:otlp"));
If additional services from the dependency injection are required for configuration they can be accessed through the Options API like this:
// Step 1: Register user-created configuration service.
appBuilder.Services.AddSingleton<MyOtlpConfigurationService>();
// Step 2: Use Options API to configure OtlpExporterOptions with user-created service.
appBuilder.Services.AddOptions<OtlpExporterOptions>()
.Configure<MyOtlpConfigurationService>((o, configService) => {
o.Endpoint = configService.ResolveOtlpExporterEndpoint();
});
The OtlpExporterOptions class is shared by logging, metrics, and tracing. To
bind configuration specific to each signal use the name parameter on the
AddOtlpExporter extensions:
// Step 1: Bind options to config using the name parameter.
appBuilder.Services.Configure<OtlpExporterOptions>("tracing", appBuilder.Configuration.GetSection("OpenTelemetry:tracing:otlp"));
appBuilder.Services.Configure<OtlpExporterOptions>("metrics", appBuilder.Configuration.GetSection("OpenTelemetry:metrics:otlp"));
appBuilder.Services.Configure<OtlpExporterOptions>("logging", appBuilder.Configuration.GetSection("OpenTelemetry:logging:otlp"));
// Step 2: Register OtlpExporter using the name parameter.
appBuilder.Services.AddOpenTelemetry()
.WithTracing(builder => builder.AddOtlpExporter("tracing", configure: null))
.WithMetrics(builder => builder.AddOtlpExporter("metrics", configure: null));
appBuilder.Logging.AddOpenTelemetry(builder => builder.AddOtlpExporter(
"logging",
options =>
{
// Note: Options can also be set via code but order is important. In the example here the code will apply after configuration.
options.Endpoint = new Uri("http://localhost/logs");
}));
Protocol: OTLP transport protocol. Supported values:
OtlpExportProtocol.Grpc and OtlpExportProtocol.HttpProtobuf.
The default is OtlpExportProtocol.Grpc.
Endpoint: Target to which the exporter is going to send traces or metrics.
The endpoint must be a valid Uri with scheme (http or https) and host, and MAY
contain a port and path. The default is "localhost:4317" for
OtlpExportProtocol.Grpc and "localhost:4318" for
OtlpExportProtocol.HttpProtobuf.
When using OtlpExportProtocol.HttpProtobuf, the full URL MUST be
provided, including the signal-specific path v1/{signal}. For example, for
traces, the full URL will look like http://your-custom-endpoint/v1/traces.
Compression: Optionally compress the export payload. The default is no
compression. The only supported compression option is OtlpExportCompression.GZip.
Headers: Optional headers for the connection.
HttpClientFactory: A factory function called to create the HttpClient
instance that will be used at runtime to transmit telemetry over HTTP when the
HttpProtobuf protocol is configured. See Configure
HttpClient for more details.
TimeoutMilliseconds : Max waiting time for the backend to process a batch.
The following options are only applicable to OtlpTraceExporter:
ExportProcessorType: Whether the exporter should use Batch or Simple
exporting
processor.
The default is Batch.
BatchExportProcessorOptions: Configuration options for the batch exporter.
Only used if ExportProcessorType is set to Batch.
See the TestOtlpExporter.cs for
an example of how to use the exporter.
The LogRecordExportProcessorOptions class may be used to configure processor &
batch settings for logging:
// Set via delegate using code:
appBuilder.Logging.AddOpenTelemetry(options =>
{
options.AddOtlpExporter((exporterOptions, processorOptions) =>
{
processorOptions.BatchExportProcessorOptions.ScheduledDelayMilliseconds = 2000;
processorOptions.BatchExportProcessorOptions.MaxExportBatchSize = 5000;
});
});
// Set via Options API using code:
appBuilder.Services.Configure<LogRecordExportProcessorOptions>(o =>
{
o.BatchExportProcessorOptions.ScheduledDelayMilliseconds = 2000;
o.BatchExportProcessorOptions.MaxExportBatchSize = 5000;
});
// Set via Options API using configuration:
appBuilder.Services.Configure<LogRecordExportProcessorOptions>(
appBuilder.Configuration.GetSection("OpenTelemetry:Logging"));
The MetricReaderOptions class may be used to configure reader settings for
metrics (e.g. TemporalityPreference and PeriodicExportingMetricReaderOptions):
// Set via delegate using code:
appBuilder.Services.AddOpenTelemetry()
.WithMetrics(builder => builder.AddOtlpExporter((exporterOptions, readerOptions) =>
{
readerOptions.TemporalityPreference = MetricReaderTemporalityPreference.Delta;
readerOptions.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 10_000;
readerOptions.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds = 5_000;
}));
// Set via Options API using code:
appBuilder.Services.Configure<MetricReaderOptions>(o =>
{
o.TemporalityPreference = MetricReaderTemporalityPreference.Delta;
o.PeriodicExportingMetricReaderOptions.ExportIntervalMilliseconds = 10_000;
o.PeriodicExportingMetricReaderOptions.ExportTimeoutMilliseconds = 5_000;
});
// Set via Options API using configuration:
appBuilder.Services.Configure<MetricReaderOptions>(
appBuilder.Configuration.GetSection("OpenTelemetry:Metrics"));
The following environment variables can be used to configure the OTLP Exporter for logs, traces, and metrics.
In OpenTelemetry .NET environment variable keys are retrieved using
IConfiguration which means they may be set using other mechanisms such as
defined in appSettings.json or specified on the command-line.
The OpenTelemetry Specification defines environment variables which can be used to configure the OTLP exporter and its associated processor (logs & traces) or reader (metrics).
All signals
The following environment variables can be used to override the default
values of the OtlpExporterOptions:
| Environment variable | OtlpExporterOptions property |
|---|---|
OTEL_EXPORTER_OTLP_COMPRESSION |
Compression (none or gzip) |
OTEL_EXPORTER_OTLP_ENDPOINT |
Endpoint |
OTEL_EXPORTER_OTLP_HEADERS |
Headers |
OTEL_EXPORTER_OTLP_PROTOCOL |
Protocol (grpc or http/protobuf) |
OTEL_EXPORTER_OTLP_TIMEOUT |
TimeoutMilliseconds |
The following environment variables can be used to configure mTLS (mutual TLS) authentication (.NET 8.0+ only):
| Environment variable | Description |
|---|---|
OTEL_EXPORTER_OTLP_CERTIFICATE |
Path to CA certificate file (PEM) |
OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE |
Path to client certificate file (PEM) |
OTEL_EXPORTER_OTLP_CLIENT_KEY |
Path to client private key file (PEM) |
Logs:
The following environment variables can be used to override the default values for the batch processor configured for logging:
| Environment variable | BatchExportLogRecordProcessorOptions property |
|---|---|
OTEL_BLRP_SCHEDULE_DELAY |
ScheduledDelayMilliseconds |
OTEL_BLRP_EXPORT_TIMEOUT |
ExporterTimeoutMilliseconds |
OTEL_BLRP_MAX_QUEUE_SIZE |
MaxQueueSize |
OTEL_BLRP_MAX_EXPORT_BATCH_SIZE |
MaxExportBatchSize |
The following environment variables can be used to override the default values
of the OtlpExporterOptions used for logging when using the UseOtlpExporter
extension:
| Environment variable | OtlpExporterOptions property |
UseOtlpExporter | AddOtlpExporter |
|---|---|---|---|
OTEL_EXPORTER_OTLP_LOGS_COMPRESSION |
Compression (none or gzip) |
Supported | Not supported |
OTEL_EXPORTER_OTLP_LOGS_ENDPOINT |
Endpoint |
Supported | Not supported |
OTEL_EXPORTER_OTLP_LOGS_HEADERS |
Headers |
Supported | Not supported |
OTEL_EXPORTER_OTLP_LOGS_PROTOCOL |
Protocol (grpc or http/protobuf) |
Supported | Not supported |
OTEL_EXPORTER_OTLP_LOGS_TIMEOUT |
TimeoutMilliseconds |
Supported | Not supported |
Metrics:
The following environment variables can be used to override the default values for the reader configured for metrics when using OTLP exporter:
| Environment variable | MetricReaderOptions property |
|---|---|
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE |
TemporalityPreference |
OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION |
DefaultHistogramAggregation |
OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION specifies the
default aggregation to use for histogram instruments. Valid values are:
explicit_bucket_histogram (default)base2_exponential_bucket_histogramNote: Explicit views configured via AddView take precedence over the
default histogram aggregation.
The following environment variables can be used to override the default values of the periodic exporting metric reader configured for metrics:
| Environment variable | PeriodicExportingMetricReaderOptions property |
|---|---|
OTEL_METRIC_EXPORT_INTERVAL |
ExportIntervalMilliseconds |
OTEL_METRIC_EXPORT_TIMEOUT |
ExportTimeoutMilliseconds |
The following environment variables can be used to override the default values
of the OtlpExporterOptions used for metrics when using the UseOtlpExporter
extension:
| Environment variable | OtlpExporterOptions property |
UseOtlpExporter | AddOtlpExporter |
|---|---|---|---|
OTEL_EXPORTER_OTLP_METRICS_COMPRESSION |
Compression (none or gzip) |
Supported | Not supported |
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT |
Endpoint |
Supported | Not supported |
OTEL_EXPORTER_OTLP_METRICS_HEADERS |
Headers |
Supported | Not supported |
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL |
Protocol (grpc or http/protobuf) |
Supported | Not supported |
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT |
TimeoutMilliseconds |
Supported | Not supported |
Tracing:
The following environment variables can be used to override the default values for the batch processor configured for tracing:
| Environment variable | BatchExportActivityProcessorOptions property |
|---|---|
OTEL_BSP_SCHEDULE_DELAY |
ScheduledDelayMilliseconds |
OTEL_BSP_EXPORT_TIMEOUT |
ExporterTimeoutMilliseconds |
OTEL_BSP_MAX_QUEUE_SIZE |
MaxQueueSize |
OTEL_BSP_MAX_EXPORT_BATCH_SIZE |
MaxExportBatchSize |
The following environment variables can be used to override the default values
of the OtlpExporterOptions used for tracing when using the UseOtlpExporter
extension:
| Environment variable | OtlpExporterOptions property |
UseOtlpExporter | AddOtlpExporter |
|---|---|---|---|
OTEL_EXPORTER_OTLP_TRACES_COMPRESSION |
Compression (none or gzip) |
Supported | Not supported |
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT |
Endpoint |
Supported | Not supported |
OTEL_EXPORTER_OTLP_TRACES_HEADERS |
Headers |
Supported | Not supported |
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL |
Protocol (grpc or http/protobuf) |
Supported | Not supported |
OTEL_EXPORTER_OTLP_TRACES_TIMEOUT |
TimeoutMilliseconds |
Supported | Not supported |
The OpenTelemetry Specification defines environment variables which can be used to configure attribute limits.
The following environment variables can be used to configure default attribute limits:
OTEL_ATTRIBUTE_VALUE_LENGTH_LIMITOTEL_ATTRIBUTE_COUNT_LIMITThe following environment variables can be used to configure span limits used for tracing:
OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITOTEL_SPAN_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_EVENT_COUNT_LIMITOTEL_SPAN_LINK_COUNT_LIMITOTEL_EVENT_ATTRIBUTE_COUNT_LIMITOTEL_LINK_ATTRIBUTE_COUNT_LIMITThe following environment variables can be used to configure log record limits used for logging:
OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMITOTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMITThe HttpClientFactory option is provided on OtlpExporterOptions for users
who want to configure the HttpClient used by the OtlpTraceExporter,
OtlpMetricExporter, and/or OtlpLogExporter when HttpProtobuf protocol is
used. Simply replace the function with your own implementation if you want to
customize the generated HttpClient:
The HttpClient instance returned by the HttpClientFactory function is used
for all export requests.
services.AddOpenTelemetry()
.WithTracing(builder => builder
.AddOtlpExporter(o =>
{
o.Protocol = OtlpExportProtocol.HttpProtobuf;
o.HttpClientFactory = () =>
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("X-MyCustomHeader", "value");
return client;
};
}));
DefaultRequestHeaders can be used for HTTP Basic Access
Authentication.
For more complex authentication requirements,
System.Net.Http.DelegatingHandler
can be used to handle token refresh, as explained
here.
For users using
IHttpClientFactory
you may also customize the named "OtlpTraceExporter" and/or "OtlpMetricExporter"
HttpClient using the built-in AddHttpClient extension:
services.AddHttpClient(
"OtlpTraceExporter",
configureClient: (client) =>
client.DefaultRequestHeaders.Add("X-MyCustomHeader", "value"));
IHttpClientFactory is NOT currently supported by OtlpLogExporter.
The following features are exposed experimentally in the OTLP Exporter. Features are exposed experimentally when either the OpenTelemetry Specification has explicitly marked something experimental or when the SIG members are still working through the design for a feature and want to solicit feedback from the community.
In OpenTelemetry .NET environment variable keys are retrieved using
IConfiguration which means they may be set using other mechanisms such as
defined in appSettings.json or specified on the command-line.
All signals
OTEL_DOTNET_EXPERIMENTAL_OTLP_RETRY
When set to in_memory, it enables in-memory retry for transient errors
encountered while sending telemetry.
Added in 1.8.0.
When set to disk, it enables retries by storing telemetry on disk during
transient errors. You MUST set
OTEL_DOTNET_EXPERIMENTAL_OTLP_DISK_RETRY_DIRECTORY_PATH to a dedicated
directory location.
The OTLP exporter utilizes a forked version of the OpenTelemetry.PersistentStorage.FileSystem library to store telemetry data on disk. When a transient failure occurs, a file is created at the specified directory path on disk containing the serialized request data that was attempted to be sent to the OTLP ingestion. A background thread attempts to resend any offline stored telemetry every 60 seconds. For more details on how these files are managed on disk, refer to the File details.
Added in TBD (Unreleased).
Logs
OTEL_DOTNET_EXPERIMENTAL_OTLP_EMIT_EVENT_LOG_ATTRIBUTES
When set to true, it enables export of LogRecord.EventId.Id as
logrecord.event.id and LogRecord.EventId.Name as logrecord.event.name.
Added in 1.7.0-alpha.1.
This component uses an EventSource with the name "OpenTelemetry-Exporter-OpenTelemetryProtocol" for its internal logging. Please refer to SDK troubleshooting for instructions on seeing these internal logs.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 is compatible. |
| .NET Framework | net461 net461 was computed. net462 net462 is compatible. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 5 NuGet packages that depend on OpenTelemetry.Exporter.OpenTelemetryProtocol:
| Package | Downloads |
|---|---|
|
Aspire.Hosting
Core abstractions for the Aspire application model. |
|
|
Pulumi
The Pulumi .NET SDK lets you write cloud programs in C#, F#, and VB.NET. |
|
|
Aspire.Hosting.AppHost
Core library and MSBuild logic for Aspire AppHost projects. |
|
|
OpenTelemetry.Exporter.OpenTelemetryProtocol.Logs
OpenTelemetry protocol exporter for OpenTelemetry .NET |
|
|
OpenTelemetry.AutoInstrumentation.Runtime.Managed
Managed components used by the OpenTelemetry.AutoInstrumentation project. |
Showing the top 20 popular GitHub repositories that depend on OpenTelemetry.Exporter.OpenTelemetryProtocol:
| Repository | Stars |
|---|---|
|
microsoft/semantic-kernel
Integrate cutting-edge LLM technology quickly and easily into your apps
|
|
|
dotnet/maui
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
|
|
|
jasontaylordev/CleanArchitecture
Clean Architecture Solution Template for ASP.NET Core
|
|
|
ardalis/CleanArchitecture
Clean Architecture Solution Template: A proven Clean Architecture Template for ASP.NET Core 10
|
|
|
dotnet/AspNetCore.Docs
Documentation for ASP.NET Core
|
|
|
dotnet/orleans
Cloud Native application framework for .NET
|
|
|
dotnet/eShop
A reference .NET application implementing an eCommerce site
|
|
|
dotnet/yarp
A toolkit for developing high-performance HTTP reverse proxy applications.
|
|
|
MassTransit/MassTransit
Distributed Application Framework for .NET
|
|
|
quartznet/quartznet
Quartz Enterprise Scheduler .NET
|
|
|
fullstackhero/dotnet-starter-kit
Production Grade Cloud-Ready .NET 10 Starter Kit (Web API + React Client) with Multitenancy Support, and Clean/Modular Architecture that saves roughly 200+ Development Hours! All Batteries Included.
|
|
|
microsoft/aspire
Aspire is the tool for code-first, extensible, observable dev and deploy.
|
|
|
Azure/azure-sdk-for-net
This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
|
|
|
kurrent-io/KurrentDB
KurrentDB is a database that's engineered for modern software applications and event-driven architectures. Its event-native design simplifies data modeling and preserves data integrity while the integrated streaming engine solves distributed messaging challenges and ensures data consistency.
|
|
|
ChilliCream/graphql-platform
Welcome to the home of the Hot Chocolate GraphQL server for .NET, the Strawberry Shake GraphQL client for .NET and Nitro the awesome Monaco based GraphQL IDE.
|
|
|
microsoft/fluentui-blazor
Microsoft Fluent UI Blazor components library. For use with ASP.NET Core Blazor applications
|
|
|
grpc/grpc-dotnet
gRPC for .NET
|
|
|
modelcontextprotocol/csharp-sdk
The official C# SDK for Model Context Protocol servers and clients. Maintained in collaboration with Microsoft.
|
|
|
ravendb/ravendb
ACID Document Database
|
|
|
thomhurst/TUnit
A modern, fast and flexible .NET testing framework
|
For highlights and announcements see: https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/RELEASENOTES.md.
For detailed changes see: https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.16.0/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md.