-
Notifications
You must be signed in to change notification settings - Fork 866
Closed
Labels
bugSomething isn't workingSomething isn't workingpkg:OpenTelemetry.Exporter.OpenTelemetryProtocolIssues related to OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet packageIssues related to OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet package
Milestone
Description
Package
OpenTelemetry.Exporter.OpenTelemetryProtocol
Package Version
| Package Name | Version |
|---|---|
| OpenTelemetry.Exporter.OpenTelemetryProtocol | 1.14.0 |
Runtime Version
all
Description
Using Boundaries = Array.Empty<double>() in ExplicitBucketHistogramConfiguration to configure a bucket-less histogram (sum/count/min/max only) throws an exception.
Steps to Reproduce
using System.Diagnostics.Metrics;
using OpenTelemetry;
using OpenTelemetry.Metrics;
using OpenTelemetry.Exporter;
var meter = new Meter("TestMeter", "1.0");
var histogram = meter.CreateHistogram<double>("request_duration");
var meterProvider = Sdk.CreateMeterProviderBuilder()
.AddMeter(meter.Name)
.AddView(
instrumentName: "request_duration",
new ExplicitBucketHistogramConfiguration { Boundaries = Array.Empty<double>() })
.AddOtlpExporter()
.Build();
// Record some measurements
histogram.Record(100);
histogram.Record(200);Expected Result
The histogram should be configured to export only sum, count, min, and max (no bucket counts), as documented.
Actual Result
An exception is thrown. Exception details from self-diagnostics log:
2025-12-13T01:08:09.0444757Z:Unknown error in export method. Message: 'System.NullReferenceException: Object reference not set to an instance of an object.
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.<WriteHistogramBuckets>g__WriteExplicitBounds|18_1(Byte[] buffer, Int32 writePosition, Double[] values)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.WriteHistogramBuckets(Byte[] buffer, Int32 writePosition, HistogramBuckets buckets)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.WriteMetric(Byte[] buffer, Int32 writePosition, Metric metric)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.WriteScopeMetric(Byte[] buffer, Int32 writePosition, String meterName, List`1 metrics)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.WriteScopeMetrics(Byte[] buffer, Int32 writePosition, Dictionary`2 scopeMetrics)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.WriteResourceMetrics(Byte[] buffer, Int32 writePosition, Resource resource, Dictionary`2 scopeMetrics)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.TryWriteResourceMetrics(Byte[]& buffer, Int32 writePosition, Resource resource, Dictionary`2 scopeMetrics)
at OpenTelemetry.Exporter.OpenTelemetryProtocol.Implementation.Serializer.ProtobufOtlpMetricSerializer.WriteMetricsData(Byte[]& buffer, Int32 writePosition, Resource resource, Batch`1& batch)
at OpenTelemetry.Exporter.OtlpMetricExporter.Export(Batch`1& metrics)'. IsRetry: False
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.
cijothomas
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingpkg:OpenTelemetry.Exporter.OpenTelemetryProtocolIssues related to OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet packageIssues related to OpenTelemetry.Exporter.OpenTelemetryProtocol NuGet package