Skip to content

Commit 4c7bf58

Browse files
lalitbcijothomas
andauthored
Global error handler cleanup - ObservableUpDownCounter, ObservableGauge (#2240)
Co-authored-by: Cijo Thomas <[email protected]>
1 parent b90c9fb commit 4c7bf58

File tree

1 file changed

+38
-6
lines changed

1 file changed

+38
-6
lines changed

opentelemetry-sdk/src/metrics/meter.rs

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -178,19 +178,30 @@ impl SdkMeter {
178178
{
179179
let validation_result = validate_instrument_config(builder.name.as_ref(), &builder.unit);
180180
if let Err(err) = validation_result {
181-
global::handle_error(err);
181+
otel_error!(
182+
name: "InstrumentCreationFailed",
183+
meter_name = self.scope.name.as_ref(),
184+
instrument_name = builder.name.as_ref(),
185+
message = "Callbacks for this observable updown counter will not be invoked.",
186+
reason = format!("{}", err));
182187
return ObservableUpDownCounter::new();
183188
}
184189

185190
match resolver.measures(
186191
InstrumentKind::ObservableUpDownCounter,
187-
builder.name,
192+
builder.name.clone(),
188193
builder.description,
189194
builder.unit,
190195
None,
191196
) {
192197
Ok(ms) => {
193198
if ms.is_empty() {
199+
otel_error!(
200+
name: "InstrumentCreationFailed",
201+
meter_name = self.scope.name.as_ref(),
202+
instrument_name = builder.name.as_ref(),
203+
message = "Callbacks for this observable updown counter will not be invoked. Check View Configuration."
204+
);
194205
return ObservableUpDownCounter::new();
195206
}
196207

@@ -205,7 +216,12 @@ impl SdkMeter {
205216
ObservableUpDownCounter::new()
206217
}
207218
Err(err) => {
208-
global::handle_error(err);
219+
otel_error!(
220+
name: "InstrumentCreationFailed",
221+
meter_name = self.scope.name.as_ref(),
222+
instrument_name = builder.name.as_ref(),
223+
message = "Callbacks for this observable updown counter will not be invoked.",
224+
reason = format!("{}", err));
209225
ObservableUpDownCounter::new()
210226
}
211227
}
@@ -221,19 +237,30 @@ impl SdkMeter {
221237
{
222238
let validation_result = validate_instrument_config(builder.name.as_ref(), &builder.unit);
223239
if let Err(err) = validation_result {
224-
global::handle_error(err);
240+
otel_error!(
241+
name: "InstrumentCreationFailed",
242+
meter_name = self.scope.name.as_ref(),
243+
instrument_name = builder.name.as_ref(),
244+
message = "Callbacks for this observable gauge will not be invoked.",
245+
reason = format!("{}", err));
225246
return ObservableGauge::new();
226247
}
227248

228249
match resolver.measures(
229250
InstrumentKind::ObservableGauge,
230-
builder.name,
251+
builder.name.clone(),
231252
builder.description,
232253
builder.unit,
233254
None,
234255
) {
235256
Ok(ms) => {
236257
if ms.is_empty() {
258+
otel_error!(
259+
name: "InstrumentCreationFailed",
260+
meter_name = self.scope.name.as_ref(),
261+
instrument_name = builder.name.as_ref(),
262+
message = "Callbacks for this observable gauge will not be invoked. Check View Configuration."
263+
);
237264
return ObservableGauge::new();
238265
}
239266

@@ -248,7 +275,12 @@ impl SdkMeter {
248275
ObservableGauge::new()
249276
}
250277
Err(err) => {
251-
global::handle_error(err);
278+
otel_error!(
279+
name: "InstrumentCreationFailed",
280+
meter_name = self.scope.name.as_ref(),
281+
instrument_name = builder.name.as_ref(),
282+
message = "Callbacks for this observable gauge will not be invoked.",
283+
reason = format!("{}", err));
252284
ObservableGauge::new()
253285
}
254286
}

0 commit comments

Comments
 (0)