Skip to content

Commit 8321fda

Browse files
committed
refactor: update metrics Result to be MetricResult
this is consistent with LogResult and TraceResult
1 parent 45b4f82 commit 8321fda

File tree

20 files changed

+92
-122
lines changed

20 files changed

+92
-122
lines changed

opentelemetry-otlp/src/exporter/http/metrics.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use std::sync::Arc;
22

33
use async_trait::async_trait;
44
use http::{header::CONTENT_TYPE, Method};
5-
use opentelemetry::metrics::{MetricsError, Result};
5+
use opentelemetry::metrics::{MetricResult, MetricsError};
66
use opentelemetry_sdk::metrics::data::ResourceMetrics;
77

88
use crate::{metric::MetricsClient, Error};
@@ -11,7 +11,7 @@ use super::OtlpHttpClient;
1111

1212
#[async_trait]
1313
impl MetricsClient for OtlpHttpClient {
14-
async fn export(&self, metrics: &mut ResourceMetrics) -> Result<()> {
14+
async fn export(&self, metrics: &mut ResourceMetrics) -> MetricResult<()> {
1515
let client = self
1616
.client
1717
.lock()
@@ -41,7 +41,7 @@ impl MetricsClient for OtlpHttpClient {
4141
Ok(())
4242
}
4343

44-
fn shutdown(&self) -> Result<()> {
44+
fn shutdown(&self) -> MetricResult<()> {
4545
let _ = self.client.lock()?.take();
4646

4747
Ok(())

opentelemetry-otlp/src/exporter/http/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ impl HttpExporterBuilder {
221221
pub fn build_metrics_exporter(
222222
mut self,
223223
temporality: opentelemetry_sdk::metrics::data::Temporality,
224-
) -> opentelemetry::metrics::Result<crate::MetricsExporter> {
224+
) -> opentelemetry::metrics::MetricResult<crate::MetricsExporter> {
225225
use crate::{
226226
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT, OTEL_EXPORTER_OTLP_METRICS_HEADERS,
227227
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT,
@@ -311,7 +311,7 @@ impl OtlpHttpClient {
311311
fn build_metrics_export_body(
312312
&self,
313313
metrics: &mut opentelemetry_sdk::metrics::data::ResourceMetrics,
314-
) -> opentelemetry::metrics::Result<(Vec<u8>, &'static str)> {
314+
) -> opentelemetry::metrics::MetricResult<(Vec<u8>, &'static str)> {
315315
use opentelemetry_proto::tonic::collector::metrics::v1::ExportMetricsServiceRequest;
316316

317317
let req: ExportMetricsServiceRequest = (&*metrics).into();

opentelemetry-otlp/src/exporter/tonic/metrics.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use core::fmt;
22
use std::sync::Mutex;
33

44
use async_trait::async_trait;
5-
use opentelemetry::metrics::{MetricsError, Result};
5+
use opentelemetry::metrics::{MetricResult, MetricsError};
66
use opentelemetry_proto::tonic::collector::metrics::v1::{
77
metrics_service_client::MetricsServiceClient, ExportMetricsServiceRequest,
88
};
@@ -51,7 +51,7 @@ impl TonicMetricsClient {
5151

5252
#[async_trait]
5353
impl MetricsClient for TonicMetricsClient {
54-
async fn export(&self, metrics: &mut ResourceMetrics) -> Result<()> {
54+
async fn export(&self, metrics: &mut ResourceMetrics) -> MetricResult<()> {
5555
let (mut client, metadata, extensions) =
5656
self.inner
5757
.lock()
@@ -84,7 +84,7 @@ impl MetricsClient for TonicMetricsClient {
8484
Ok(())
8585
}
8686

87-
fn shutdown(&self) -> Result<()> {
87+
fn shutdown(&self) -> MetricResult<()> {
8888
let _ = self.inner.lock()?.take();
8989

9090
Ok(())

opentelemetry-otlp/src/exporter/tonic/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ impl TonicExporterBuilder {
274274
pub(crate) fn build_metrics_exporter(
275275
self,
276276
temporality: opentelemetry_sdk::metrics::data::Temporality,
277-
) -> opentelemetry::metrics::Result<crate::MetricsExporter> {
277+
) -> opentelemetry::metrics::MetricResult<crate::MetricsExporter> {
278278
use crate::MetricsExporter;
279279
use metrics::TonicMetricsClient;
280280

opentelemetry-otlp/src/metric.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::NoExporterBuilderSet;
1616

1717
use async_trait::async_trait;
1818
use core::fmt;
19-
use opentelemetry::metrics::Result;
19+
use opentelemetry::metrics::MetricResult;
2020

2121
use opentelemetry_sdk::metrics::{
2222
data::{ResourceMetrics, Temporality},
@@ -77,15 +77,15 @@ impl<C> MetricsExporterBuilder<C> {
7777

7878
#[cfg(feature = "grpc-tonic")]
7979
impl MetricsExporterBuilder<TonicExporterBuilderSet> {
80-
pub fn build(self) -> Result<MetricsExporter> {
80+
pub fn build(self) -> MetricResult<MetricsExporter> {
8181
let exporter = self.client.0.build_metrics_exporter(self.temporality)?;
8282
Ok(exporter)
8383
}
8484
}
8585

8686
#[cfg(any(feature = "http-proto", feature = "http-json"))]
8787
impl MetricsExporterBuilder<HttpExporterBuilderSet> {
88-
pub fn build(self) -> Result<MetricsExporter> {
88+
pub fn build(self) -> MetricResult<MetricsExporter> {
8989
let exporter = self.client.0.build_metrics_exporter(self.temporality)?;
9090
Ok(exporter)
9191
}
@@ -122,8 +122,8 @@ impl HasHttpConfig for MetricsExporterBuilder<HttpExporterBuilderSet> {
122122
/// An interface for OTLP metrics clients
123123
#[async_trait]
124124
pub trait MetricsClient: fmt::Debug + Send + Sync + 'static {
125-
async fn export(&self, metrics: &mut ResourceMetrics) -> Result<()>;
126-
fn shutdown(&self) -> Result<()>;
125+
async fn export(&self, metrics: &mut ResourceMetrics) -> MetricResult<()>;
126+
fn shutdown(&self) -> MetricResult<()>;
127127
}
128128

129129
/// Export metrics in OTEL format.
@@ -140,16 +140,16 @@ impl Debug for MetricsExporter {
140140

141141
#[async_trait]
142142
impl PushMetricsExporter for MetricsExporter {
143-
async fn export(&self, metrics: &mut ResourceMetrics) -> Result<()> {
143+
async fn export(&self, metrics: &mut ResourceMetrics) -> MetricResult<()> {
144144
self.client.export(metrics).await
145145
}
146146

147-
async fn force_flush(&self) -> Result<()> {
147+
async fn force_flush(&self) -> MetricResult<()> {
148148
// this component is stateless
149149
Ok(())
150150
}
151151

152-
fn shutdown(&self) -> Result<()> {
152+
fn shutdown(&self) -> MetricResult<()> {
153153
self.client.shutdown()
154154
}
155155

opentelemetry-otlp/tests/integration_test/expected/serialized_traces.json

Lines changed: 3 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"spanId": "cd7cf7bf939930b7",
2727
"traceState": "",
2828
"parentSpanId": "d58cf2d702a061e0",
29-
"flags": 0,
29+
"flags": 1,
3030
"name": "Sub operation...",
3131
"kind": 1,
3232
"startTimeUnixNano": "1703985537070566698",
@@ -55,40 +55,13 @@
5555
"message": "",
5656
"code": 0
5757
}
58-
}
59-
],
60-
"schemaUrl": ""
61-
}
62-
],
63-
"schemaUrl": ""
64-
},
65-
{
66-
"resource": {
67-
"attributes": [
68-
{
69-
"key": "service.name",
70-
"value": {
71-
"stringValue": "basic-otlp-tracing-example"
72-
}
73-
}
74-
],
75-
"droppedAttributesCount": 0
76-
},
77-
"scopeSpans": [
78-
{
79-
"scope": {
80-
"name": "ex.com/basic",
81-
"version": "",
82-
"attributes": [],
83-
"droppedAttributesCount": 0
84-
},
85-
"spans": [
58+
},
8659
{
8760
"traceId": "9b458af7378cba65253d7042d34fc72e",
8861
"spanId": "d58cf2d702a061e0",
8962
"traceState": "",
9063
"parentSpanId": "",
91-
"flags": 0,
64+
"flags": 1,
9265
"name": "operation",
9366
"kind": 1,
9467
"startTimeUnixNano": "1703985537070558635",
@@ -112,12 +85,6 @@
11285
"value": {
11386
"intValue": "100"
11487
}
115-
},
116-
{
117-
"key": "number/int",
118-
"value": {
119-
"intValue": "100"
120-
}
12188
}
12289
],
12390
"droppedAttributesCount": 0

opentelemetry-sdk/benches/metric.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use std::sync::{Arc, Weak};
33

44
use criterion::{criterion_group, criterion_main, Bencher, Criterion};
55
use opentelemetry::{
6-
metrics::{Counter, Histogram, MeterProvider as _, Result},
6+
metrics::{Counter, Histogram, MeterProvider as _, MetricResult},
77
Key, KeyValue,
88
};
99
use opentelemetry_sdk::{
@@ -25,15 +25,15 @@ impl MetricReader for SharedReader {
2525
self.0.register_pipeline(pipeline)
2626
}
2727

28-
fn collect(&self, rm: &mut ResourceMetrics) -> Result<()> {
28+
fn collect(&self, rm: &mut ResourceMetrics) -> MetricResult<()> {
2929
self.0.collect(rm)
3030
}
3131

32-
fn force_flush(&self) -> Result<()> {
32+
fn force_flush(&self) -> MetricResult<()> {
3333
self.0.force_flush()
3434
}
3535

36-
fn shutdown(&self) -> Result<()> {
36+
fn shutdown(&self) -> MetricResult<()> {
3737
self.0.shutdown()
3838
}
3939

opentelemetry-sdk/src/metrics/aggregation.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::fmt;
22

33
use crate::metrics::internal::{EXPO_MAX_SCALE, EXPO_MIN_SCALE};
4-
use opentelemetry::metrics::{MetricsError, Result};
4+
use opentelemetry::metrics::{MetricResult, MetricsError};
55

66
/// The way recorded measurements are summarized.
77
#[derive(Clone, Debug, PartialEq)]
@@ -109,7 +109,7 @@ impl fmt::Display for Aggregation {
109109

110110
impl Aggregation {
111111
/// Validate that this aggregation has correct configuration
112-
pub fn validate(&self) -> Result<()> {
112+
pub fn validate(&self) -> MetricResult<()> {
113113
match self {
114114
Aggregation::Drop => Ok(()),
115115
Aggregation::Default => Ok(()),
@@ -153,16 +153,16 @@ mod tests {
153153
internal::{EXPO_MAX_SCALE, EXPO_MIN_SCALE},
154154
Aggregation,
155155
};
156-
use opentelemetry::metrics::{MetricsError, Result};
156+
use opentelemetry::metrics::{MetricResult, MetricsError};
157157

158158
#[test]
159159
fn validate_aggregation() {
160160
struct TestCase {
161161
name: &'static str,
162162
input: Aggregation,
163-
check: Box<dyn Fn(Result<()>) -> bool>,
163+
check: Box<dyn Fn(MetricResult<()>) -> bool>,
164164
}
165-
let ok = Box::new(|result: Result<()>| result.is_ok());
165+
let ok = Box::new(|result: MetricResult<()>| result.is_ok());
166166
let config_error = Box::new(|result| matches!(result, Err(MetricsError::Config(_))));
167167

168168
let test_cases: Vec<TestCase> = vec![

opentelemetry-sdk/src/metrics/exporter.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! Interfaces for exporting metrics
22
use async_trait::async_trait;
33

4-
use opentelemetry::metrics::Result;
4+
use opentelemetry::metrics::MetricResult;
55

66
use crate::metrics::data::ResourceMetrics;
77

@@ -18,16 +18,16 @@ pub trait PushMetricsExporter: Send + Sync + 'static {
1818
/// implement any retry logic. All errors returned by this function are
1919
/// considered unrecoverable and will be reported to a configured error
2020
/// Handler.
21-
async fn export(&self, metrics: &mut ResourceMetrics) -> Result<()>;
21+
async fn export(&self, metrics: &mut ResourceMetrics) -> MetricResult<()>;
2222

2323
/// Flushes any metric data held by an exporter.
24-
async fn force_flush(&self) -> Result<()>;
24+
async fn force_flush(&self) -> MetricResult<()>;
2525

2626
/// Releases any held computational resources.
2727
///
2828
/// After Shutdown is called, calls to Export will perform no operation and
2929
/// instead will return an error indicating the shutdown state.
30-
fn shutdown(&self) -> Result<()>;
30+
fn shutdown(&self) -> MetricResult<()>;
3131

3232
/// Access the [Temporality] of the MetricsExporter.
3333
fn temporality(&self) -> Temporality;

opentelemetry-sdk/src/metrics/manual_reader.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::{
55

66
use opentelemetry::{
77
global,
8-
metrics::{MetricsError, Result},
8+
metrics::{MetricResult, MetricsError},
99
};
1010

1111
use super::{
@@ -88,7 +88,7 @@ impl MetricReader for ManualReader {
8888
/// callbacks necessary and returning the results.
8989
///
9090
/// Returns an error if called after shutdown.
91-
fn collect(&self, rm: &mut ResourceMetrics) -> Result<()> {
91+
fn collect(&self, rm: &mut ResourceMetrics) -> MetricResult<()> {
9292
let inner = self.inner.lock()?;
9393
match &inner.sdk_producer.as_ref().and_then(|w| w.upgrade()) {
9494
Some(producer) => producer.produce(rm)?,
@@ -103,12 +103,12 @@ impl MetricReader for ManualReader {
103103
}
104104

105105
/// ForceFlush is a no-op, it always returns nil.
106-
fn force_flush(&self) -> Result<()> {
106+
fn force_flush(&self) -> MetricResult<()> {
107107
Ok(())
108108
}
109109

110110
/// Closes any connections and frees any resources used by the reader.
111-
fn shutdown(&self) -> Result<()> {
111+
fn shutdown(&self) -> MetricResult<()> {
112112
let mut inner = self.inner.lock()?;
113113

114114
// Any future call to collect will now return an error.

opentelemetry-sdk/src/metrics/meter.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use opentelemetry::{
55
global,
66
metrics::{
77
AsyncInstrumentBuilder, Counter, Gauge, Histogram, HistogramBuilder, InstrumentBuilder,
8-
InstrumentProvider, MetricsError, ObservableCounter, ObservableGauge,
9-
ObservableUpDownCounter, Result, UpDownCounter,
8+
InstrumentProvider, MetricResult, MetricsError, ObservableCounter, ObservableGauge,
9+
ObservableUpDownCounter, UpDownCounter,
1010
},
1111
otel_error,
1212
};
@@ -462,11 +462,11 @@ impl InstrumentProvider for SdkMeter {
462462
}
463463
}
464464

465-
fn validate_instrument_config(name: &str, unit: &Option<Cow<'static, str>>) -> Result<()> {
465+
fn validate_instrument_config(name: &str, unit: &Option<Cow<'static, str>>) -> MetricResult<()> {
466466
validate_instrument_name(name).and_then(|_| validate_instrument_unit(unit))
467467
}
468468

469-
fn validate_instrument_name(name: &str) -> Result<()> {
469+
fn validate_instrument_name(name: &str) -> MetricResult<()> {
470470
if name.is_empty() {
471471
return Err(MetricsError::InvalidInstrumentConfiguration(
472472
INSTRUMENT_NAME_EMPTY,
@@ -492,7 +492,7 @@ fn validate_instrument_name(name: &str) -> Result<()> {
492492
Ok(())
493493
}
494494

495-
fn validate_instrument_unit(unit: &Option<Cow<'static, str>>) -> Result<()> {
495+
fn validate_instrument_unit(unit: &Option<Cow<'static, str>>) -> MetricResult<()> {
496496
if let Some(unit) = unit {
497497
if unit.len() > INSTRUMENT_UNIT_NAME_MAX_LENGTH {
498498
return Err(MetricsError::InvalidInstrumentConfiguration(
@@ -536,7 +536,7 @@ where
536536
description: Option<Cow<'static, str>>,
537537
unit: Option<Cow<'static, str>>,
538538
boundaries: Option<Vec<f64>>,
539-
) -> Result<ResolvedMeasures<T>> {
539+
) -> MetricResult<ResolvedMeasures<T>> {
540540
let aggregators = self.measures(kind, name, description, unit, boundaries)?;
541541
Ok(ResolvedMeasures {
542542
measures: aggregators,
@@ -550,7 +550,7 @@ where
550550
description: Option<Cow<'static, str>>,
551551
unit: Option<Cow<'static, str>>,
552552
boundaries: Option<Vec<f64>>,
553-
) -> Result<Vec<Arc<dyn internal::Measure<T>>>> {
553+
) -> MetricResult<Vec<Arc<dyn internal::Measure<T>>>> {
554554
let inst = Instrument {
555555
name,
556556
description: description.unwrap_or_default(),

0 commit comments

Comments
 (0)