@@ -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,20 @@ 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: "InstrumentCreationFailed" ,
81+ meter_name = self . scope. name. as_ref( ) ,
82+ instrument_name = builder. name. as_ref( ) ,
83+ message = "Measurements from this counter will be ignored." ,
84+ reason = format!( "{}" , err)
85+ ) ;
7986 return Counter :: new ( Arc :: new ( NoopSyncInstrument :: new ( ) ) ) ;
8087 }
8188
8289 match resolver
8390 . lookup (
8491 InstrumentKind :: Counter ,
85- builder. name ,
92+ builder. name . clone ( ) ,
8693 builder. description ,
8794 builder. unit ,
8895 None ,
@@ -91,7 +98,13 @@ impl SdkMeter {
9198 {
9299 Ok ( counter) => counter,
93100 Err ( err) => {
94- global:: handle_error ( err) ;
101+ otel_error ! (
102+ name: "InstrumentCreationFailed" ,
103+ meter_name = self . scope. name. as_ref( ) ,
104+ instrument_name = builder. name. as_ref( ) ,
105+ message = "Measurements from this counter will be ignored." ,
106+ reason = format!( "{}" , err)
107+ ) ;
95108 Counter :: new ( Arc :: new ( NoopSyncInstrument :: new ( ) ) )
96109 }
97110 }
@@ -107,19 +120,30 @@ impl SdkMeter {
107120 {
108121 let validation_result = validate_instrument_config ( builder. name . as_ref ( ) , & builder. unit ) ;
109122 if let Err ( err) = validation_result {
110- global:: handle_error ( err) ;
123+ otel_error ! (
124+ name: "InstrumentCreationFailed" ,
125+ meter_name = self . scope. name. as_ref( ) ,
126+ instrument_name = builder. name. as_ref( ) ,
127+ message = "Callbacks for this observable counter will not be invoked." ,
128+ reason = format!( "{}" , err) ) ;
111129 return ObservableCounter :: new ( ) ;
112130 }
113131
114132 match resolver. measures (
115133 InstrumentKind :: ObservableCounter ,
116- builder. name ,
134+ builder. name . clone ( ) ,
117135 builder. description ,
118136 builder. unit ,
119137 None ,
120138 ) {
121139 Ok ( ms) => {
122140 if ms. is_empty ( ) {
141+ otel_error ! (
142+ name: "InstrumentCreationFailed" ,
143+ meter_name = self . scope. name. as_ref( ) ,
144+ instrument_name = builder. name. as_ref( ) ,
145+ message = "Callbacks for this observable counter will not be invoked. Check View Configuration."
146+ ) ;
123147 return ObservableCounter :: new ( ) ;
124148 }
125149
@@ -134,7 +158,12 @@ impl SdkMeter {
134158 ObservableCounter :: new ( )
135159 }
136160 Err ( err) => {
137- global:: handle_error ( err) ;
161+ otel_error ! (
162+ name: "InstrumentCreationFailed" ,
163+ meter_name = self . scope. name. as_ref( ) ,
164+ instrument_name = builder. name. as_ref( ) ,
165+ message = "Callbacks for this observable counter will not be invoked." ,
166+ reason = format!( "{}" , err) ) ;
138167 ObservableCounter :: new ( )
139168 }
140169 }
0 commit comments