@@ -8,6 +8,7 @@ use opentelemetry::{
88 InstrumentProvider , MetricsError , ObservableCounter , ObservableGauge ,
99 ObservableUpDownCounter , Result , UpDownCounter ,
1010 } ,
11+ otel_error,
1112} ;
1213
1314use crate :: instrumentation:: Scope ;
@@ -75,14 +76,19 @@ impl SdkMeter {
7576 {
7677 let validation_result = validate_instrument_config ( builder. name . as_ref ( ) , & builder. unit ) ;
7778 if let Err ( err) = validation_result {
78- global:: handle_error ( err) ;
79+ otel_error ! (
80+ name: "SdkMeter.CreateCounter.InstrumentCreationFailed" ,
81+ meter_name = self . scope. name. as_ref( ) ,
82+ instrument_name = builder. name. as_ref( ) ,
83+ error = format!( "Measurements from the counter will be ignored. Reason: {}" , err)
84+ ) ;
7985 return Counter :: new ( Arc :: new ( NoopSyncInstrument :: new ( ) ) ) ;
8086 }
8187
8288 match resolver
8389 . lookup (
8490 InstrumentKind :: Counter ,
85- builder. name ,
91+ builder. name . clone ( ) ,
8692 builder. description ,
8793 builder. unit ,
8894 None ,
@@ -91,7 +97,12 @@ impl SdkMeter {
9197 {
9298 Ok ( counter) => counter,
9399 Err ( err) => {
94- global:: handle_error ( err) ;
100+ otel_error ! (
101+ name: "SdkMeter.CreateCounter.InstrumentCreationFailed" ,
102+ meter_name = self . scope. name. as_ref( ) ,
103+ instrument_name = builder. name. as_ref( ) ,
104+ error = format!( "Measurements from the counter will be ignored. Reason: {}" , err)
105+ ) ;
95106 Counter :: new ( Arc :: new ( NoopSyncInstrument :: new ( ) ) )
96107 }
97108 }
@@ -107,19 +118,29 @@ impl SdkMeter {
107118 {
108119 let validation_result = validate_instrument_config ( builder. name . as_ref ( ) , & builder. unit ) ;
109120 if let Err ( err) = validation_result {
110- global:: handle_error ( err) ;
121+ otel_error ! (
122+ name: "SdkMeter.CreateObservableCounter.InstrumentCreationFailed" ,
123+ meter_name = self . scope. name. as_ref( ) ,
124+ instrument_name = builder. name. as_ref( ) ,
125+ error = format!( "Measurements from the observable counter will be ignored. Reason: {}" , err) ) ;
111126 return ObservableCounter :: new ( ) ;
112127 }
113128
114129 match resolver. measures (
115130 InstrumentKind :: ObservableCounter ,
116- builder. name ,
131+ builder. name . clone ( ) ,
117132 builder. description ,
118133 builder. unit ,
119134 None ,
120135 ) {
121136 Ok ( ms) => {
122137 if ms. is_empty ( ) {
138+ otel_error ! (
139+ name: "SdkMeter.CreateObservableCounter.InstrumentCreationFailed" ,
140+ meter_name = self . scope. name. as_ref( ) ,
141+ instrument_name = builder. name. as_ref( ) ,
142+ message = "Measurements from the observable counter will be ignored. Check View Configuration."
143+ ) ;
123144 return ObservableCounter :: new ( ) ;
124145 }
125146
@@ -134,7 +155,11 @@ impl SdkMeter {
134155 ObservableCounter :: new ( )
135156 }
136157 Err ( err) => {
137- global:: handle_error ( err) ;
158+ otel_error ! (
159+ name: "SdkMeter.CreateObservableCounter.InstrumentCreationFailed" ,
160+ meter_name = self . scope. name. as_ref( ) ,
161+ instrument_name = builder. name. as_ref( ) ,
162+ message = format!( "Measurements from the observable counter will be ignored. Reason: {}" , err) ) ;
138163 ObservableCounter :: new ( )
139164 }
140165 }
0 commit comments