From eb12f9b386f0f3231bd9f41b34b65cc927831e1c Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Wed, 24 May 2023 15:27:41 -0700 Subject: [PATCH] Console exporter: Display exponential histogram boundaries (#4507) --- .../ConsoleMetricExporter.cs | 17 +++++++++++++++-- .../OpenTelemetry.Exporter.Console.csproj | 1 + 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/OpenTelemetry.Exporter.Console/ConsoleMetricExporter.cs b/src/OpenTelemetry.Exporter.Console/ConsoleMetricExporter.cs index fc9d13de0..25654d712 100644 --- a/src/OpenTelemetry.Exporter.Console/ConsoleMetricExporter.cs +++ b/src/OpenTelemetry.Exporter.Console/ConsoleMetricExporter.cs @@ -146,8 +146,21 @@ namespace OpenTelemetry.Exporter } else { - // TODO: Consider how/if to display buckets for exponential histograms. - bucketsBuilder.AppendLine("Buckets are not displayed for exponential histograms."); + var exponentialHistogramData = metricPoint.GetExponentialHistogramData(); + var scale = exponentialHistogramData.Scale; + + if (exponentialHistogramData.ZeroCount != 0) + { + bucketsBuilder.AppendLine($"Zero Bucket:{exponentialHistogramData.ZeroCount}"); + } + + var offset = exponentialHistogramData.PositiveBuckets.Offset; + foreach (var bucketCount in exponentialHistogramData.PositiveBuckets) + { + var lowerBound = Base2ExponentialBucketHistogram.LowerBoundary(offset, scale).ToString(CultureInfo.InvariantCulture); + var upperBound = Base2ExponentialBucketHistogram.LowerBoundary(++offset, scale).ToString(CultureInfo.InvariantCulture); + bucketsBuilder.AppendLine($"({lowerBound}, {upperBound}]:{bucketCount}"); + } } valueDisplay = bucketsBuilder.ToString(); diff --git a/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj b/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj index 7883a6a6c..b7afb8a8f 100644 --- a/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj +++ b/src/OpenTelemetry.Exporter.Console/OpenTelemetry.Exporter.Console.csproj @@ -28,6 +28,7 @@ +