Skip to content

Commit 8a0e56c

Browse files
committed
internal-log counter and observable counter
1 parent a7de955 commit 8a0e56c

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

opentelemetry-sdk/src/metrics/meter.rs

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use opentelemetry::{
88
InstrumentProvider, MetricsError, ObservableCounter, ObservableGauge,
99
ObservableUpDownCounter, Result, UpDownCounter,
1010
},
11+
otel_error,
1112
};
1213

1314
use 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

Comments
 (0)