From d48133fbaa1e78a87ecb01199ed22108ec52e851 Mon Sep 17 00:00:00 2001 From: Lalit Date: Wed, 23 Oct 2024 20:56:59 -0700 Subject: [PATCH 1/3] metrics-sdk-error --- .../metrics/internal/exponential_histogram.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs b/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs index c23b441663..4907f91c25 100644 --- a/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs +++ b/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs @@ -1,7 +1,7 @@ use std::{collections::HashMap, f64::consts::LOG2_E, sync::Mutex, time::SystemTime}; use once_cell::sync::Lazy; -use opentelemetry::{metrics::MetricsError, KeyValue}; +use opentelemetry::{otel_debug, KeyValue}; use crate::{ metrics::data::{self, Aggregation, Temporality}, @@ -100,9 +100,20 @@ impl ExpoHistogramDataPoint { if (self.scale - scale_delta as i8) < EXPO_MIN_SCALE { // With a scale of -10 there is only two buckets for the whole range of f64 values. // This can only happen if there is a max size of 1. - opentelemetry::global::handle_error(MetricsError::Other( - "exponential histogram scale underflow".into(), - )); + + // TODO - to check if this should be logged as an error if this is auto-recoverable. + otel_debug!( + name: "ExponentialHistogramDataPoint.Scale.Underflow", + current_scale = self.scale, + scale_delta = scale_delta, + max_size = self.max_size, + min_scale = EXPO_MIN_SCALE, + record_min_max = self.record_min_max, + record_sum = self.record_sum, + value = format!("{:?}", v), + error = "The measurement will be dropped due to scale underflow. Check the histogram configuration" + ); + return; } // Downscale From bde6dd194b0adaf940191e9325a19da1847d4341 Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 24 Oct 2024 09:38:09 -0700 Subject: [PATCH 2/3] Update opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs Co-authored-by: Cijo Thomas --- opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs b/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs index 4907f91c25..18160fbf17 100644 --- a/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs +++ b/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs @@ -111,7 +111,7 @@ impl ExpoHistogramDataPoint { record_min_max = self.record_min_max, record_sum = self.record_sum, value = format!("{:?}", v), - error = "The measurement will be dropped due to scale underflow. Check the histogram configuration" + message = "The measurement will be dropped due to scale underflow. Check the histogram configuration" ); return; From 4bab7f5d122edd83b6646021ee2cedb6ec604a5c Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Thu, 24 Oct 2024 09:50:48 -0700 Subject: [PATCH 3/3] review comment --- opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs b/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs index 18160fbf17..e85e0ece55 100644 --- a/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs +++ b/opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs @@ -108,8 +108,6 @@ impl ExpoHistogramDataPoint { scale_delta = scale_delta, max_size = self.max_size, min_scale = EXPO_MIN_SCALE, - record_min_max = self.record_min_max, - record_sum = self.record_sum, value = format!("{:?}", v), message = "The measurement will be dropped due to scale underflow. Check the histogram configuration" );