Skip to content

Commit 845cf21

Browse files
cijothomasutpilla
andauthored
Move Temporality enum opentelemetry_sdk::metrics::data:: to opentelemetry_sdk::metrics:: (#2289)
Co-authored-by: Utkarsh Umesan Pillai <[email protected]>
1 parent a707bb9 commit 845cf21

File tree

27 files changed

+72
-72
lines changed

27 files changed

+72
-72
lines changed

examples/metrics-advanced/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use opentelemetry::global;
22
use opentelemetry::Key;
33
use opentelemetry::KeyValue;
44
use opentelemetry_sdk::metrics::{
5-
data::Temporality, Aggregation, Instrument, PeriodicReader, SdkMeterProvider, Stream,
5+
Aggregation, Instrument, PeriodicReader, SdkMeterProvider, Stream, Temporality,
66
};
77
use opentelemetry_sdk::{runtime, Resource};
88
use std::error::Error;

examples/metrics-basic/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::vec;
88
fn init_meter_provider() -> opentelemetry_sdk::metrics::SdkMeterProvider {
99
let exporter = opentelemetry_stdout::MetricExporterBuilder::default()
1010
// Build exporter using Delta Temporality (Defaults to Temporality::Cumulative)
11-
// .with_temporality(data::Temporality::Delta)
11+
// .with_temporality(opentelemetry_sdk::metrics::Temporality::Delta)
1212
.build();
1313
let reader = PeriodicReader::builder(exporter, runtime::Tokio).build();
1414
let provider = SdkMeterProvider::builder()

opentelemetry-otlp/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
```
1111
Updated Signature:
1212
```rust
13-
MetricsExporterBuilder::default().with_temporality(Temporality::Delta)
13+
MetricsExporterBuilder::default().with_temporality(opentelemetry_sdk::metrics::Temporality::Delta)
1414
```
1515
- ([#2221](https://github.com/open-telemetry/opentelemetry-rust/pull/2221)) **Replaced**:
1616
- The `opentelemetry_otlp::new_pipeline().{trace,logging,metrics}()` interface is now replaced with `{TracerProvider,SdkMeterProvider,LoggerProvider}::builder()`.

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ impl Default for HttpConfig {
9999
///
100100
/// ```
101101
/// # #[cfg(feature="metrics")]
102-
/// use opentelemetry_sdk::metrics::data::Temporality;
102+
/// use opentelemetry_sdk::metrics::Temporality;
103103
///
104104
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
105105
/// // Create a span exporter you can use to when configuring tracer providers
@@ -243,7 +243,7 @@ impl HttpExporterBuilder {
243243
#[cfg(feature = "metrics")]
244244
pub fn build_metrics_exporter(
245245
mut self,
246-
temporality: opentelemetry_sdk::metrics::data::Temporality,
246+
temporality: opentelemetry_sdk::metrics::Temporality,
247247
) -> opentelemetry_sdk::metrics::MetricResult<crate::MetricExporter> {
248248
use crate::{
249249
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT, OTEL_EXPORTER_OTLP_METRICS_HEADERS,

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ impl TryFrom<Compression> for tonic::codec::CompressionEncoding {
8181
///
8282
/// ```no_run
8383
/// # #[cfg(feature="metrics")]
84-
/// use opentelemetry_sdk::metrics::data::Temporality;
84+
/// use opentelemetry_sdk::metrics::Temporality;
8585
///
8686
/// # fn main() -> Result<(), Box<dyn std::error::Error>> {
8787
/// // Create a span exporter you can use to when configuring tracer providers
@@ -273,7 +273,7 @@ impl TonicExporterBuilder {
273273
#[cfg(feature = "metrics")]
274274
pub(crate) fn build_metrics_exporter(
275275
self,
276-
temporality: opentelemetry_sdk::metrics::data::Temporality,
276+
temporality: opentelemetry_sdk::metrics::Temporality,
277277
) -> opentelemetry_sdk::metrics::MetricResult<crate::MetricExporter> {
278278
use crate::MetricExporter;
279279
use metrics::TonicMetricsClient;

opentelemetry-otlp/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
//! use opentelemetry::{global, KeyValue, trace::Tracer};
133133
//! use opentelemetry_sdk::{trace::{self, RandomIdGenerator, Sampler}, Resource};
134134
//! # #[cfg(feature = "metrics")]
135-
//! use opentelemetry_sdk::metrics::data::Temporality;
135+
//! use opentelemetry_sdk::metrics::Temporality;
136136
//! use opentelemetry_otlp::{Protocol, WithExportConfig, WithTonicConfig};
137137
//! use std::time::Duration;
138138
//! # #[cfg(feature = "grpc-tonic")]

opentelemetry-otlp/src/metric.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ use core::fmt;
1919
use opentelemetry_sdk::metrics::MetricResult;
2020

2121
use opentelemetry_sdk::metrics::{
22-
data::{ResourceMetrics, Temporality},
23-
exporter::PushMetricExporter,
22+
data::ResourceMetrics, exporter::PushMetricExporter, Temporality,
2423
};
2524
use std::fmt::{Debug, Formatter};
2625

opentelemetry-proto/src/transform/metrics.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ pub mod tonic {
1212
use opentelemetry_sdk::metrics::data::{
1313
self, Exemplar as SdkExemplar, ExponentialHistogram as SdkExponentialHistogram,
1414
Gauge as SdkGauge, Histogram as SdkHistogram, Metric as SdkMetric,
15-
ScopeMetrics as SdkScopeMetrics, Sum as SdkSum, Temporality,
15+
ScopeMetrics as SdkScopeMetrics, Sum as SdkSum,
1616
};
17+
use opentelemetry_sdk::metrics::Temporality;
1718
use opentelemetry_sdk::Resource as SdkResource;
1819

1920
use crate::proto::tonic::{

opentelemetry-sdk/CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@
4646
- Users calling public APIs that return these constructs (e.g, LoggerProvider::shutdown(), MeterProvider::force_flush()) should now import them from the SDK instead of the API.
4747
- Developers creating custom exporters should ensure they import these constructs from the SDK, not the API.
4848

49+
- **BREAKING**: `Temporality` enum moved from `opentelemetry_sdk::metrics::data::Temporality` to `opentelemetry_sdk::metrics::Temporality`.
50+
4951
## v0.26.0
5052
Released 2024-Sep-30
5153

opentelemetry-sdk/benches/metric.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,9 @@ use opentelemetry::{
88
};
99
use opentelemetry_sdk::{
1010
metrics::{
11-
data::{ResourceMetrics, Temporality},
12-
new_view,
13-
reader::MetricReader,
14-
Aggregation, Instrument, InstrumentKind, ManualReader, MetricResult, Pipeline,
15-
SdkMeterProvider, Stream, View,
11+
data::ResourceMetrics, new_view, reader::MetricReader, Aggregation, Instrument,
12+
InstrumentKind, ManualReader, MetricResult, Pipeline, SdkMeterProvider, Stream,
13+
Temporality, View,
1614
},
1715
Resource,
1816
};

opentelemetry-sdk/src/metrics/data/mod.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ use opentelemetry::{InstrumentationScope, KeyValue};
66

77
use crate::Resource;
88

9-
pub use self::temporality::Temporality;
10-
11-
mod temporality;
9+
use super::Temporality;
1210

1311
/// A collection of [ScopeMetrics] and the associated [Resource] that created them.
1412
#[derive(Debug)]

opentelemetry-sdk/src/metrics/data/temporality.rs

-22
This file was deleted.

opentelemetry-sdk/src/metrics/exporter.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::metrics::MetricResult;
55

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

8-
use super::data::Temporality;
8+
use super::Temporality;
99

1010
/// Exporter handles the delivery of metric data to external receivers.
1111
///

opentelemetry-sdk/src/metrics/instrument.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use opentelemetry::{
77

88
use crate::metrics::{aggregation::Aggregation, internal::Measure};
99

10-
use super::data::Temporality;
10+
use super::Temporality;
1111

1212
/// The identifier of a group of instruments that all perform the same function.
1313
#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq)]

opentelemetry-sdk/src/metrics/internal/aggregate.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ use std::{marker, sync::Arc};
22

33
use opentelemetry::KeyValue;
44

5-
use crate::metrics::data::{Aggregation, Gauge, Temporality};
5+
use crate::metrics::{
6+
data::{Aggregation, Gauge},
7+
Temporality,
8+
};
69

710
use super::{
811
exponential_histogram::ExpoHistogram, histogram::Histogram, last_value::LastValue,

opentelemetry-sdk/src/metrics/internal/exponential_histogram.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ use std::{collections::HashMap, f64::consts::LOG2_E, sync::Mutex, time::SystemTi
33
use once_cell::sync::Lazy;
44
use opentelemetry::{otel_debug, KeyValue};
55

6-
use crate::{
7-
metrics::data::{self, Aggregation, Temporality},
8-
metrics::AttributeSet,
6+
use crate::metrics::{
7+
data::{self, Aggregation},
8+
AttributeSet, Temporality,
99
};
1010

1111
use super::Number;

opentelemetry-sdk/src/metrics/internal/histogram.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ use std::ops::DerefMut;
33
use std::{sync::Mutex, time::SystemTime};
44

55
use crate::metrics::data::HistogramDataPoint;
6-
use crate::metrics::data::{self, Aggregation, Temporality};
6+
use crate::metrics::data::{self, Aggregation};
7+
use crate::metrics::Temporality;
78
use opentelemetry::KeyValue;
89

910
use super::ValueMap;

opentelemetry-sdk/src/metrics/internal/precomputed_sum.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use opentelemetry::KeyValue;
22

3-
use crate::metrics::data::{self, Aggregation, DataPoint, Temporality};
3+
use crate::metrics::data::{self, Aggregation, DataPoint};
4+
use crate::metrics::Temporality;
45

56
use super::{last_value::Assign, AtomicTracker, Number, ValueMap};
67
use std::{collections::HashMap, mem::replace, ops::DerefMut, sync::Mutex, time::SystemTime};

opentelemetry-sdk/src/metrics/internal/sum.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ use std::ops::DerefMut;
33
use std::vec;
44
use std::{sync::Mutex, time::SystemTime};
55

6-
use crate::metrics::data::{self, Aggregation, DataPoint, Temporality};
6+
use crate::metrics::data::{self, Aggregation, DataPoint};
7+
use crate::metrics::Temporality;
78
use opentelemetry::KeyValue;
89

910
use super::{Aggregator, AtomicTracker, Number};

opentelemetry-sdk/src/metrics/manual_reader.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ use std::{
55

66
use opentelemetry::otel_debug;
77

8-
use crate::metrics::{MetricError, MetricResult};
8+
use crate::metrics::{MetricError, MetricResult, Temporality};
99

1010
use super::{
11-
data::{ResourceMetrics, Temporality},
11+
data::ResourceMetrics,
1212
pipeline::Pipeline,
1313
reader::{MetricReader, SdkProducer},
1414
};

opentelemetry-sdk/src/metrics/mod.rs

+24-1
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,29 @@ use std::hash::{Hash, Hasher};
6969

7070
use opentelemetry::{Key, KeyValue, Value};
7171

72+
/// Defines the window that an aggregation was calculated over.
73+
#[derive(Debug, Copy, Clone, Default, PartialEq, Eq, Hash)]
74+
#[non_exhaustive]
75+
pub enum Temporality {
76+
/// A measurement interval that continues to expand forward in time from a
77+
/// starting point.
78+
///
79+
/// New measurements are added to all previous measurements since a start time.
80+
#[default]
81+
Cumulative,
82+
83+
/// A measurement interval that resets each cycle.
84+
///
85+
/// Measurements from one cycle are recorded independently, measurements from
86+
/// other cycles do not affect them.
87+
Delta,
88+
89+
/// Configures Synchronous Counter and Histogram instruments to use
90+
/// Delta aggregation temporality, which allows them to shed memory
91+
/// following a cardinality explosion, thus use less memory.
92+
LowMemory,
93+
}
94+
7295
/// A unique set of attributes that can be used as instrument identifiers.
7396
///
7497
/// This must implement [Hash], [PartialEq], and [Eq] so it may be used as
@@ -132,7 +155,7 @@ impl Hash for AttributeSet {
132155
mod tests {
133156
use self::data::{DataPoint, HistogramDataPoint, ScopeMetrics};
134157
use super::*;
135-
use crate::metrics::data::{ResourceMetrics, Temporality};
158+
use crate::metrics::data::ResourceMetrics;
136159
use crate::testing::metrics::InMemoryMetricExporterBuilder;
137160
use crate::{runtime, testing::metrics::InMemoryMetricExporter};
138161
use opentelemetry::metrics::{Counter, Meter, UpDownCounter};

opentelemetry-sdk/src/metrics/periodic_reader.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -396,18 +396,19 @@ impl MetricReader for PeriodicReader {
396396
/// If not configured, the Cumulative temporality SHOULD be used.
397397
///
398398
/// [metric-reader]: https://github.com/open-telemetry/opentelemetry-specification/blob/0a78571045ca1dca48621c9648ec3c832c3c541c/specification/metrics/sdk.md#metricreader
399-
fn temporality(&self, kind: InstrumentKind) -> super::data::Temporality {
399+
fn temporality(&self, kind: InstrumentKind) -> super::Temporality {
400400
kind.temporality_preference(self.exporter.temporality())
401401
}
402402
}
403403

404404
#[cfg(all(test, feature = "testing"))]
405405
mod tests {
406406
use super::PeriodicReader;
407+
use crate::metrics::reader::MetricReader;
407408
use crate::metrics::MetricError;
408409
use crate::{
409-
metrics::data::ResourceMetrics, metrics::reader::MetricReader, metrics::SdkMeterProvider,
410-
runtime, testing::metrics::InMemoryMetricExporter, Resource,
410+
metrics::data::ResourceMetrics, metrics::SdkMeterProvider, runtime,
411+
testing::metrics::InMemoryMetricExporter, Resource,
411412
};
412413
use opentelemetry::metrics::MeterProvider;
413414
use std::sync::mpsc;

opentelemetry-sdk/src/metrics/reader.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,7 @@ use std::{fmt, sync::Weak};
33

44
use crate::metrics::MetricResult;
55

6-
use super::{
7-
data::{ResourceMetrics, Temporality},
8-
pipeline::Pipeline,
9-
InstrumentKind,
10-
};
6+
use super::{data::ResourceMetrics, pipeline::Pipeline, InstrumentKind, Temporality};
117

128
/// The interface used between the SDK and an exporter.
139
///

opentelemetry-sdk/src/testing/metrics/in_memory_exporter.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use crate::metrics::data;
2-
use crate::metrics::data::{Histogram, Metric, ResourceMetrics, ScopeMetrics, Temporality};
2+
use crate::metrics::data::{Histogram, Metric, ResourceMetrics, ScopeMetrics};
33
use crate::metrics::exporter::PushMetricExporter;
44
use crate::metrics::MetricError;
55
use crate::metrics::MetricResult;
6+
use crate::metrics::Temporality;
67
use async_trait::async_trait;
78
use std::collections::VecDeque;
89
use std::fmt;

opentelemetry-sdk/src/testing/metrics/metric_reader.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
use std::sync::{Arc, Mutex, Weak};
22

3-
use crate::metrics::MetricResult;
43
use crate::metrics::{
5-
data::{ResourceMetrics, Temporality},
6-
pipeline::Pipeline,
7-
reader::MetricReader,
8-
InstrumentKind,
4+
data::ResourceMetrics, pipeline::Pipeline, reader::MetricReader, InstrumentKind,
95
};
6+
use crate::metrics::{MetricResult, Temporality};
107

118
#[derive(Debug, Clone)]
129
pub struct TestMetricReader {

opentelemetry-stdout/CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
```
1313
Updated Signature:
1414
```rust
15-
MetricsExporterBuilder::default().with_temporality(Temporality::Delta)
15+
MetricsExporterBuilder::default().with_temporality(opentelemetry_sdk::metrics::Temporality::Delta)
1616
```
1717
- **Renamed**
1818
- ([#2255](https://github.com/open-telemetry/opentelemetry-rust/pull/2255)): de-pluralize Metric types.

opentelemetry-stdout/src/metrics/exporter.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ use async_trait::async_trait;
22
use chrono::{DateTime, Utc};
33
use core::{f64, fmt};
44
use opentelemetry_sdk::metrics::{
5-
data::{self, ScopeMetrics, Temporality},
5+
data::{self, ScopeMetrics},
66
exporter::PushMetricExporter,
77
};
8-
use opentelemetry_sdk::metrics::{MetricError, MetricResult};
8+
use opentelemetry_sdk::metrics::{MetricError, MetricResult, Temporality};
99
use std::fmt::Debug;
1010
use std::sync::atomic;
1111

@@ -137,7 +137,7 @@ fn print_metrics(metrics: &[ScopeMetrics]) {
137137
fn print_sum<T: Debug>(sum: &data::Sum<T>) {
138138
println!("\t\tSum DataPoints");
139139
println!("\t\tMonotonic : {}", sum.is_monotonic);
140-
if sum.temporality == data::Temporality::Cumulative {
140+
if sum.temporality == Temporality::Cumulative {
141141
println!("\t\tTemporality : Cumulative");
142142
} else {
143143
println!("\t\tTemporality : Delta");
@@ -151,7 +151,7 @@ fn print_gauge<T: Debug>(gauge: &data::Gauge<T>) {
151151
}
152152

153153
fn print_histogram<T: Debug>(histogram: &data::Histogram<T>) {
154-
if histogram.temporality == data::Temporality::Cumulative {
154+
if histogram.temporality == Temporality::Cumulative {
155155
println!("\t\tTemporality : Cumulative");
156156
} else {
157157
println!("\t\tTemporality : Delta");

0 commit comments

Comments
 (0)