Skip to content

Commit f1c7fa6

Browse files
authored
Merge branch 'main' into trace-internal-log
2 parents 9372fc4 + 17f4627 commit f1c7fa6

File tree

22 files changed

+150
-137
lines changed

22 files changed

+150
-137
lines changed

examples/metrics-advanced/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ fn init_meter_provider() -> opentelemetry_sdk::metrics::SdkMeterProvider {
4545
};
4646

4747
// Build exporter using Delta Temporality.
48-
let exporter = opentelemetry_stdout::MetricsExporterBuilder::default()
48+
let exporter = opentelemetry_stdout::MetricExporterBuilder::default()
4949
.with_temporality(Temporality::Delta)
5050
.build();
5151

examples/metrics-basic/src/main.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use std::error::Error;
66
use std::vec;
77

88
fn init_meter_provider() -> opentelemetry_sdk::metrics::SdkMeterProvider {
9-
let exporter = opentelemetry_stdout::MetricsExporterBuilder::default()
9+
let exporter = opentelemetry_stdout::MetricExporterBuilder::default()
1010
// Build exporter using Delta Temporality (Defaults to Temporality::Cumulative)
1111
// .with_temporality(data::Temporality::Delta)
1212
.build();

examples/self-diagnostics/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use opentelemetry::global::{self, set_error_handler, Error as OtelError};
22
use opentelemetry::KeyValue;
33
use opentelemetry_appender_tracing::layer;
4-
use opentelemetry_otlp::{LogExporter, MetricsExporter, WithExportConfig};
4+
use opentelemetry_otlp::{LogExporter, MetricExporter, WithExportConfig};
55
use opentelemetry_sdk::metrics::PeriodicReader;
66
use tracing_subscriber::filter::{EnvFilter, LevelFilter};
77
use tracing_subscriber::fmt;
@@ -109,7 +109,7 @@ fn init_logger_provider() -> opentelemetry_sdk::logs::LoggerProvider {
109109
}
110110

111111
fn init_meter_provider() -> opentelemetry_sdk::metrics::SdkMeterProvider {
112-
let exporter = MetricsExporter::builder()
112+
let exporter = MetricExporter::builder()
113113
.with_http()
114114
.with_endpoint("http://localhost:4318/v1/metrics")
115115
.build()

opentelemetry-otlp/CHANGELOG.md

+4
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,10 @@ Released 2024-Sep-30
4848
.build()?,
4949
).build();
5050
```
51+
- **Renamed**
52+
- ([#2255](https://github.com/open-telemetry/opentelemetry-rust/pull/2255)): de-pluralize Metric types.
53+
- `MetricsExporter` -> `MetricExporter`
54+
- `MetricsExporterBuilder` -> `MetricExporterBuilder`
5155

5256
## v0.25.0
5357

opentelemetry-otlp/examples/basic-otlp-http/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use opentelemetry::{
77
};
88
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
99
use opentelemetry_otlp::WithExportConfig;
10-
use opentelemetry_otlp::{LogExporter, MetricsExporter, Protocol, SpanExporter};
10+
use opentelemetry_otlp::{LogExporter, MetricExporter, Protocol, SpanExporter};
1111
use opentelemetry_sdk::{
1212
logs::LoggerProvider,
1313
metrics::{PeriodicReader, SdkMeterProvider},
@@ -66,7 +66,7 @@ fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {
6666
}
6767

6868
fn init_metrics() -> Result<opentelemetry_sdk::metrics::SdkMeterProvider, MetricError> {
69-
let exporter = MetricsExporter::builder()
69+
let exporter = MetricExporter::builder()
7070
.with_http()
7171
.with_protocol(Protocol::HttpBinary) //can be changed to `Protocol::HttpJson` to export in JSON format
7272
.with_endpoint("http://localhost:4318/v1/metrics")

opentelemetry-otlp/examples/basic-otlp/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ SpanEvent #0
120120
### Metric
121121

122122
```text
123-
2024-05-22T20:25:42.908Z info MetricsExporter {"kind": "exporter", "data_type": "metrics", "name": "logging", "resource metrics": 1, "metrics": 1, "data points": 1}
123+
2024-05-22T20:25:42.908Z info MetricExporter {"kind": "exporter", "data_type": "metrics", "name": "logging", "resource metrics": 1, "metrics": 1, "data points": 1}
124124
2024-05-22T20:25:42.908Z info ResourceMetrics #0
125125
Resource SchemaURL:
126126
Resource attributes:

opentelemetry-otlp/examples/basic-otlp/src/main.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use opentelemetry::trace::{TraceContextExt, TraceError, Tracer};
55
use opentelemetry::KeyValue;
66
use opentelemetry::{global, InstrumentationScope};
77
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
8-
use opentelemetry_otlp::{LogExporter, MetricsExporter, SpanExporter, WithExportConfig};
8+
use opentelemetry_otlp::{LogExporter, MetricExporter, SpanExporter, WithExportConfig};
99
use opentelemetry_sdk::logs::LoggerProvider;
1010
use opentelemetry_sdk::metrics::{PeriodicReader, SdkMeterProvider};
1111
use opentelemetry_sdk::trace::Config;
@@ -34,7 +34,7 @@ fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {
3434
}
3535

3636
fn init_metrics() -> Result<opentelemetry_sdk::metrics::SdkMeterProvider, MetricError> {
37-
let exporter = MetricsExporter::builder().with_tonic().build()?;
37+
let exporter = MetricExporter::builder().with_tonic().build()?;
3838

3939
let reader = PeriodicReader::builder(exporter, runtime::Tokio).build();
4040

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

+3-3
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ impl Default for HttpConfig {
8383
///
8484
/// // Create a metrics exporter you can use when configuring meter providers
8585
/// # #[cfg(feature="metrics")]
86-
/// let metrics_exporter = opentelemetry_otlp::MetricsExporter::builder()
86+
/// let metrics_exporter = opentelemetry_otlp::MetricExporter::builder()
8787
/// .with_http()
8888
/// .with_temporality(Temporality::default())
8989
/// .build()?;
@@ -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::MetricResult<crate::MetricsExporter> {
224+
) -> opentelemetry::metrics::MetricResult<crate::MetricExporter> {
225225
use crate::{
226226
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT, OTEL_EXPORTER_OTLP_METRICS_HEADERS,
227227
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT,
@@ -234,7 +234,7 @@ impl HttpExporterBuilder {
234234
OTEL_EXPORTER_OTLP_METRICS_HEADERS,
235235
)?;
236236

237-
Ok(crate::MetricsExporter::new(client, temporality))
237+
Ok(crate::MetricExporter::new(client, temporality))
238238
}
239239
}
240240

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ impl TryFrom<Compression> for tonic::codec::CompressionEncoding {
9090
///
9191
/// // Create a metric exporter you can use when configuring meter providers
9292
/// # #[cfg(feature="metrics")]
93-
/// let metric_exporter = opentelemetry_otlp::MetricsExporter::builder()
93+
/// let metric_exporter = opentelemetry_otlp::MetricExporter::builder()
9494
/// .with_tonic()
9595
/// .with_temporality(Temporality::default())
9696
/// .build()?;
@@ -274,8 +274,8 @@ impl TonicExporterBuilder {
274274
pub(crate) fn build_metrics_exporter(
275275
self,
276276
temporality: opentelemetry_sdk::metrics::data::Temporality,
277-
) -> opentelemetry::metrics::MetricResult<crate::MetricsExporter> {
278-
use crate::MetricsExporter;
277+
) -> opentelemetry::metrics::MetricResult<crate::MetricExporter> {
278+
use crate::MetricExporter;
279279
use metrics::TonicMetricsClient;
280280

281281
let (channel, interceptor, compression) = self.build_channel(
@@ -287,7 +287,7 @@ impl TonicExporterBuilder {
287287

288288
let client = TonicMetricsClient::new(channel, interceptor, compression);
289289

290-
Ok(MetricsExporter::new(client, temporality))
290+
Ok(MetricExporter::new(client, temporality))
291291
}
292292

293293
/// Build a new tonic span exporter

opentelemetry-otlp/src/lib.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
//! telemetry.
2626
//!
2727
//! You will have to build a OTLP exporter first. Create the correct exporter based on the signal
28-
//! you are looking to export `SpanExporter::builder()`, `MetricsExporter::builder()`,
28+
//! you are looking to export `SpanExporter::builder()`, `MetricExporter::builder()`,
2929
//! `LogExporter::builder()` respectively for traces, metrics, and logs.
3030
//!
3131
//! Once you have the exporter, you can create your `Provider` by starting with `TracerProvider::builder()`,
@@ -124,7 +124,7 @@
124124
//!
125125
//! Generally there are two parts of configuration. One is the exporter, the other is the provider.
126126
//! Users can configure the exporter using [SpanExporter::builder()] for traces,
127-
//! and [MetricsExporter::builder()] + [opentelemetry_sdk::metrics::PeriodicReader::builder()] for metrics.
127+
//! and [MetricExporter::builder()] + [opentelemetry_sdk::metrics::PeriodicReader::builder()] for metrics.
128128
//! Once you have an exporter, you can add it to either a [opentelemetry_sdk::trace::TracerProvider::builder()] for traces,
129129
//! or [opentelemetry_sdk::metrics::SdkMeterProvider::builder()] for metrics.
130130
//!
@@ -171,7 +171,7 @@
171171
//!
172172
//! # #[cfg(all(feature = "metrics", feature = "grpc-tonic"))]
173173
//! # {
174-
//! let exporter = opentelemetry_otlp::MetricsExporter::builder()
174+
//! let exporter = opentelemetry_otlp::MetricExporter::builder()
175175
//! .with_tonic()
176176
//! .with_endpoint("http://localhost:4318/v1/metrics")
177177
//! .with_protocol(Protocol::Grpc)
@@ -240,7 +240,7 @@ pub use crate::span::{
240240
#[cfg(feature = "metrics")]
241241
#[cfg(any(feature = "http-proto", feature = "http-json", feature = "grpc-tonic"))]
242242
pub use crate::metric::{
243-
MetricsExporter, OTEL_EXPORTER_OTLP_METRICS_COMPRESSION, OTEL_EXPORTER_OTLP_METRICS_ENDPOINT,
243+
MetricExporter, OTEL_EXPORTER_OTLP_METRICS_COMPRESSION, OTEL_EXPORTER_OTLP_METRICS_ENDPOINT,
244244
OTEL_EXPORTER_OTLP_METRICS_HEADERS, OTEL_EXPORTER_OTLP_METRICS_TIMEOUT,
245245
};
246246

opentelemetry-otlp/src/metric.rs

+30-30
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! OTEL metric exporter
22
//!
3-
//! Defines a [MetricsExporter] to send metric data to backend via OTLP protocol.
3+
//! Defines a [MetricExporter] to send metric data to backend via OTLP protocol.
44
//!
55
66
#[cfg(any(feature = "http-proto", feature = "http-json", feature = "grpc-tonic"))]
@@ -20,7 +20,7 @@ use opentelemetry::metrics::MetricResult;
2020

2121
use opentelemetry_sdk::metrics::{
2222
data::{ResourceMetrics, Temporality},
23-
exporter::PushMetricsExporter,
23+
exporter::PushMetricExporter,
2424
};
2525
use std::fmt::{Debug, Formatter};
2626

@@ -39,81 +39,81 @@ pub const OTEL_EXPORTER_OTLP_METRICS_COMPRESSION: &str = "OTEL_EXPORTER_OTLP_MET
3939
pub const OTEL_EXPORTER_OTLP_METRICS_HEADERS: &str = "OTEL_EXPORTER_OTLP_METRICS_HEADERS";
4040

4141
#[derive(Debug, Default, Clone)]
42-
pub struct MetricsExporterBuilder<C> {
42+
pub struct MetricExporterBuilder<C> {
4343
client: C,
4444
temporality: Temporality,
4545
}
4646

47-
impl MetricsExporterBuilder<NoExporterBuilderSet> {
47+
impl MetricExporterBuilder<NoExporterBuilderSet> {
4848
pub fn new() -> Self {
49-
MetricsExporterBuilder::default()
49+
MetricExporterBuilder::default()
5050
}
5151
}
5252

53-
impl<C> MetricsExporterBuilder<C> {
53+
impl<C> MetricExporterBuilder<C> {
5454
#[cfg(feature = "grpc-tonic")]
55-
pub fn with_tonic(self) -> MetricsExporterBuilder<TonicExporterBuilderSet> {
56-
MetricsExporterBuilder {
55+
pub fn with_tonic(self) -> MetricExporterBuilder<TonicExporterBuilderSet> {
56+
MetricExporterBuilder {
5757
client: TonicExporterBuilderSet(TonicExporterBuilder::default()),
5858
temporality: self.temporality,
5959
}
6060
}
6161

6262
#[cfg(any(feature = "http-proto", feature = "http-json"))]
63-
pub fn with_http(self) -> MetricsExporterBuilder<HttpExporterBuilderSet> {
64-
MetricsExporterBuilder {
63+
pub fn with_http(self) -> MetricExporterBuilder<HttpExporterBuilderSet> {
64+
MetricExporterBuilder {
6565
client: HttpExporterBuilderSet(HttpExporterBuilder::default()),
6666
temporality: self.temporality,
6767
}
6868
}
6969

70-
pub fn with_temporality(self, temporality: Temporality) -> MetricsExporterBuilder<C> {
71-
MetricsExporterBuilder {
70+
pub fn with_temporality(self, temporality: Temporality) -> MetricExporterBuilder<C> {
71+
MetricExporterBuilder {
7272
client: self.client,
7373
temporality,
7474
}
7575
}
7676
}
7777

7878
#[cfg(feature = "grpc-tonic")]
79-
impl MetricsExporterBuilder<TonicExporterBuilderSet> {
80-
pub fn build(self) -> MetricResult<MetricsExporter> {
79+
impl MetricExporterBuilder<TonicExporterBuilderSet> {
80+
pub fn build(self) -> MetricResult<MetricExporter> {
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"))]
87-
impl MetricsExporterBuilder<HttpExporterBuilderSet> {
88-
pub fn build(self) -> MetricResult<MetricsExporter> {
87+
impl MetricExporterBuilder<HttpExporterBuilderSet> {
88+
pub fn build(self) -> MetricResult<MetricExporter> {
8989
let exporter = self.client.0.build_metrics_exporter(self.temporality)?;
9090
Ok(exporter)
9191
}
9292
}
9393

9494
#[cfg(feature = "grpc-tonic")]
95-
impl HasExportConfig for MetricsExporterBuilder<TonicExporterBuilderSet> {
95+
impl HasExportConfig for MetricExporterBuilder<TonicExporterBuilderSet> {
9696
fn export_config(&mut self) -> &mut crate::ExportConfig {
9797
&mut self.client.0.exporter_config
9898
}
9999
}
100100

101101
#[cfg(any(feature = "http-proto", feature = "http-json"))]
102-
impl HasExportConfig for MetricsExporterBuilder<HttpExporterBuilderSet> {
102+
impl HasExportConfig for MetricExporterBuilder<HttpExporterBuilderSet> {
103103
fn export_config(&mut self) -> &mut crate::ExportConfig {
104104
&mut self.client.0.exporter_config
105105
}
106106
}
107107

108108
#[cfg(feature = "grpc-tonic")]
109-
impl HasTonicConfig for MetricsExporterBuilder<TonicExporterBuilderSet> {
109+
impl HasTonicConfig for MetricExporterBuilder<TonicExporterBuilderSet> {
110110
fn tonic_config(&mut self) -> &mut crate::TonicConfig {
111111
&mut self.client.0.tonic_config
112112
}
113113
}
114114

115115
#[cfg(any(feature = "http-proto", feature = "http-json"))]
116-
impl HasHttpConfig for MetricsExporterBuilder<HttpExporterBuilderSet> {
116+
impl HasHttpConfig for MetricExporterBuilder<HttpExporterBuilderSet> {
117117
fn http_client_config(&mut self) -> &mut crate::exporter::http::HttpConfig {
118118
&mut self.client.0.http_config
119119
}
@@ -127,19 +127,19 @@ pub trait MetricsClient: fmt::Debug + Send + Sync + 'static {
127127
}
128128

129129
/// Export metrics in OTEL format.
130-
pub struct MetricsExporter {
130+
pub struct MetricExporter {
131131
client: Box<dyn MetricsClient>,
132132
temporality: Temporality,
133133
}
134134

135-
impl Debug for MetricsExporter {
135+
impl Debug for MetricExporter {
136136
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
137-
f.debug_struct("MetricsExporter").finish()
137+
f.debug_struct("MetricExporter").finish()
138138
}
139139
}
140140

141141
#[async_trait]
142-
impl PushMetricsExporter for MetricsExporter {
142+
impl PushMetricExporter for MetricExporter {
143143
async fn export(&self, metrics: &mut ResourceMetrics) -> MetricResult<()> {
144144
self.client.export(metrics).await
145145
}
@@ -158,15 +158,15 @@ impl PushMetricsExporter for MetricsExporter {
158158
}
159159
}
160160

161-
impl MetricsExporter {
162-
/// Obtain a builder to configure a [MetricsExporter].
163-
pub fn builder() -> MetricsExporterBuilder<NoExporterBuilderSet> {
164-
MetricsExporterBuilder::default()
161+
impl MetricExporter {
162+
/// Obtain a builder to configure a [MetricExporter].
163+
pub fn builder() -> MetricExporterBuilder<NoExporterBuilderSet> {
164+
MetricExporterBuilder::default()
165165
}
166166

167167
/// Create a new metrics exporter
168-
pub fn new(client: impl MetricsClient, temporality: Temporality) -> MetricsExporter {
169-
MetricsExporter {
168+
pub fn new(client: impl MetricsClient, temporality: Temporality) -> MetricExporter {
169+
MetricExporter {
170170
client: Box::new(client),
171171
temporality,
172172
}

opentelemetry-sdk/CHANGELOG.md

+17-13
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,24 @@
55
- Bump MSRV to 1.70 [#2179](https://github.com/open-telemetry/opentelemetry-rust/pull/2179)
66
- Implement `LogRecord::set_trace_context` for `LogRecord`. Respect any trace context set on a `LogRecord` when emitting through a `Logger`.
77
- Improved `LoggerProvider` shutdown handling to prevent redundant shutdown calls when `drop` is invoked. [#2195](https://github.com/open-telemetry/opentelemetry-rust/pull/2195)
8-
- **BREAKING**: [#2217](https://github.com/open-telemetry/opentelemetry-rust/pull/2217)
9-
- **Replaced**: Removed `{Delta,Cumulative}TemporalitySelector::new()` in favor of directly using `Temporality` enum to simplify the configuration of MetricsExporterBuilder with different temporalities.
108
- When creating new metric instruments, SDK would return a no-op instrument if the validation fails. [#2166](https://github.com/open-telemetry/opentelemetry-rust/pull/2166)
11-
- **Breaking change for Metrics users:** The `init` method used to create instruments has been renamed to `build`.
12-
13-
Before:
14-
```rust
15-
let counter = meter.u64_counter("my_counter").init();
16-
```
17-
18-
Now:
19-
```rust
20-
let counter = meter.u64_counter("my_counter").build();
21-
```
9+
- **BREAKING for Metrics users**:
10+
- **Replaced**
11+
- ([#2217](https://github.com/open-telemetry/opentelemetry-rust/pull/2217)): Removed `{Delta,Cumulative}TemporalitySelector::new()` in favor of directly using `Temporality` enum to simplify the configuration of MetricsExporterBuilder with different temporalities.
12+
- **Renamed**
13+
- ([#2232](https://github.com/open-telemetry/opentelemetry-rust/pull/2232)): The `init` method used to create instruments has been renamed to `build`.
14+
Before:
15+
```rust
16+
let counter = meter.u64_counter("my_counter").init();
17+
```
18+
Now:
19+
```rust
20+
let counter = meter.u64_counter("my_counter").build();
21+
```
22+
- ([#2255](https://github.com/open-telemetry/opentelemetry-rust/pull/2255)): de-pluralize Metric types.
23+
- `PushMetricsExporter` -> `PushMetricExporter`
24+
- `InMemoryMetricsExporter` -> `InMemoryMetricExporter`
25+
- `InMemoryMetricsExporterBuilder` -> `InMemoryMetricExporterBuilder`
2226
- **BREAKING**: [#2220](https://github.com/open-telemetry/opentelemetry-rust/pull/2220)
2327
- Removed `InstrumentationLibrary` re-export and its `Scope` alias, use `opentelemetry::InstrumentationLibrary` instead.
2428
- Unified builders across signals

0 commit comments

Comments
 (0)