@@ -8,6 +8,7 @@ use opentelemetry::{
8
8
InstrumentProvider , MetricsError , ObservableCounter , ObservableGauge ,
9
9
ObservableUpDownCounter , Result , UpDownCounter ,
10
10
} ,
11
+ otel_error,
11
12
} ;
12
13
13
14
use crate :: instrumentation:: Scope ;
@@ -75,14 +76,20 @@ impl SdkMeter {
75
76
{
76
77
let validation_result = validate_instrument_config ( builder. name . as_ref ( ) , & builder. unit ) ;
77
78
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
+ ) ;
79
86
return Counter :: new ( Arc :: new ( NoopSyncInstrument :: new ( ) ) ) ;
80
87
}
81
88
82
89
match resolver
83
90
. lookup (
84
91
InstrumentKind :: Counter ,
85
- builder. name ,
92
+ builder. name . clone ( ) ,
86
93
builder. description ,
87
94
builder. unit ,
88
95
None ,
@@ -91,7 +98,13 @@ impl SdkMeter {
91
98
{
92
99
Ok ( counter) => counter,
93
100
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
+ ) ;
95
108
Counter :: new ( Arc :: new ( NoopSyncInstrument :: new ( ) ) )
96
109
}
97
110
}
@@ -107,19 +120,30 @@ impl SdkMeter {
107
120
{
108
121
let validation_result = validate_instrument_config ( builder. name . as_ref ( ) , & builder. unit ) ;
109
122
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) ) ;
111
129
return ObservableCounter :: new ( ) ;
112
130
}
113
131
114
132
match resolver. measures (
115
133
InstrumentKind :: ObservableCounter ,
116
- builder. name ,
134
+ builder. name . clone ( ) ,
117
135
builder. description ,
118
136
builder. unit ,
119
137
None ,
120
138
) {
121
139
Ok ( ms) => {
122
140
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
+ ) ;
123
147
return ObservableCounter :: new ( ) ;
124
148
}
125
149
@@ -134,7 +158,12 @@ impl SdkMeter {
134
158
ObservableCounter :: new ( )
135
159
}
136
160
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) ) ;
138
167
ObservableCounter :: new ( )
139
168
}
140
169
}
0 commit comments