-
Notifications
You must be signed in to change notification settings - Fork 845
Open
Labels
bugSomething isn't workingSomething isn't workingneeds-triageNew issues which have not been classified or triaged by a community memberNew issues which have not been classified or triaged by a community memberpkg:OpenTelemetryIssues related to OpenTelemetry NuGet packageIssues related to OpenTelemetry NuGet package
Description
Package
OpenTelemetry
Package Version
Package Name | Version |
---|---|
OpenTelemetry.Api | 1.12.0 |
OpenTelemetry | 1.12.0 |
Runtime Version
net9.0
Description
A comma is a valid character in a HTTP header value, but the OtlpExporterOptions.Headers
string also uses commas as delimiters and the current parser interprets the comma in the value as a delimiter, which consequently leads to an exception since the next (assumed) header pair doesn't have a =
delimiter for header key and value.
Line 25 in fe5e6bc
public static THeaders GetHeaders<THeaders>(this OtlpExporterOptions options, Action<THeaders, string, string> addHeader) |
Steps to Reproduce
Assign a header with a value that contains a comma to OtlpExporterOptions.Headers
:
services
.AddOpenTelemetry()
.WithLogging(x =>
x.AddOtlpExporter(
"name",
o =>
{
o.Headers = "VL-Stream-Fields=service.name,service.environment";
}
)
);
Expected Result
The header should be properly parsed.
Actual Result
System.ArgumentException: Headers provided in an invalid format.
at OpenTelemetry.Exporter.OtlpExporterOptionsExtensions.GetHeaders[THeaders](OtlpExporterOptions options, Action`3 addHeader)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.ExportClient.OtlpExportClient..ctor(OtlpExporterOptions options, HttpClient httpClient, String signalPath)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.ExportClient.OtlpHttpExportClient..ctor(OtlpExporterOptions options, HttpClient httpClient, String signalPath)
at OpenTelemetry.Exporter.OtlpExporterOptionsExtensions.GetExportClient(OtlpExporterOptions options, OtlpSignalType otlpSignalType)
at OpenTelemetry.Exporter.OtlpExporterOptionsExtensions.GetExportTransmissionHandler(OtlpExporterOptions options, ExperimentalOptions experimentalOptions, OtlpSignalType otlpSignalType)
at OpenTelemetry.Exporter.OtlpLogExporter..ctor(OtlpExporterOptions exporterOptions, SdkLimitOptions sdkLimitOptions, ExperimentalOptions experimentalOptions, OtlpExporterTransmissionHandler transmissionHandler)
at OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.BuildOtlpLogExporter(IServiceProvider serviceProvider, OtlpExporterOptions exporterOptions, LogRecordExportProcessorOptions processorOptions, SdkLimitOptions sdkLimitOptions, ExperimentalOptions experimentalOptions, Boolean skipUseOtlpExporterRegistrationCheck, Func`2 configureExporterInstance)
at OpenTelemetry.Logs.OtlpLogExporterHelperExtensions.<>c__DisplayClass8_0.<AddOtlpExporter>b__1(IServiceProvider sp)
at OpenTelemetry.Logs.LoggerProviderBuilderExtensions.<>c__DisplayClass4_0.<AddProcessor>b__0(IServiceProvider sp, LoggerProviderBuilder builder)
at OpenTelemetry.Logs.OpenTelemetryDependencyInjectionLoggingServiceCollectionExtensions.ConfigureLoggerProviderBuilderCallbackWrapper.ConfigureBuilder(IServiceProvider serviceProvider, LoggerProviderBuilder loggerProviderBuilder)
at OpenTelemetry.Logs.LoggerProviderSdk..ctor(IServiceProvider serviceProvider, Boolean ownsServiceProvider)
at OpenTelemetry.Logs.LoggerProviderBuilderBase.<>c.<.ctor>b__3_0(IServiceProvider sp)
Additional Context
No response
Tip
React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1
or me too
, to help us triage it. Learn more here.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingneeds-triageNew issues which have not been classified or triaged by a community memberNew issues which have not been classified or triaged by a community memberpkg:OpenTelemetryIssues related to OpenTelemetry NuGet packageIssues related to OpenTelemetry NuGet package