Skip to content

Commit 23a7465

Browse files
authored
Merge branch 'main' into dedicated-thread-runtime
2 parents bde5b7f + 0156146 commit 23a7465

File tree

19 files changed

+219
-165
lines changed

19 files changed

+219
-165
lines changed

opentelemetry-appender-tracing/benches/logs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ struct NoopExporter {
3434

3535
#[async_trait]
3636
impl LogExporter for NoopExporter {
37-
async fn export(&mut self, _: LogBatch<'_>) -> LogResult<()> {
37+
async fn export(&self, _: LogBatch<'_>) -> LogResult<()> {
3838
LogResult::Ok(())
3939
}
4040

opentelemetry-appender-tracing/src/layer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ mod tests {
247247

248248
#[async_trait]
249249
impl LogExporter for ReentrantLogExporter {
250-
async fn export(&mut self, _batch: LogBatch<'_>) -> LogResult<()> {
250+
async fn export(&self, _batch: LogBatch<'_>) -> LogResult<()> {
251251
// This will cause a deadlock as the export itself creates a log
252252
// while still within the lock of the SimpleLogProcessor.
253253
warn!(name: "my-event-name", target: "reentrant", event_id = 20, user_name = "otel", user_email = "[email protected]");

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use super::OtlpHttpClient;
99

1010
#[async_trait]
1111
impl LogExporter for OtlpHttpClient {
12-
async fn export(&mut self, batch: LogBatch<'_>) -> LogResult<()> {
12+
async fn export(&self, batch: LogBatch<'_>) -> LogResult<()> {
1313
let client = self
1414
.client
1515
.lock()

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use tonic::{codegen::CompressionEncoding, service::Interceptor, transport::Chann
1010
use opentelemetry_proto::transform::logs::tonic::group_logs_by_resource_and_scope;
1111

1212
use super::BoxInterceptor;
13+
use tokio::sync::Mutex;
1314

1415
pub(crate) struct TonicLogsClient {
1516
inner: Option<ClientInner>,
@@ -20,7 +21,7 @@ pub(crate) struct TonicLogsClient {
2021

2122
struct ClientInner {
2223
client: LogsServiceClient<Channel>,
23-
interceptor: BoxInterceptor,
24+
interceptor: Mutex<BoxInterceptor>,
2425
}
2526

2627
impl fmt::Debug for TonicLogsClient {
@@ -45,7 +46,7 @@ impl TonicLogsClient {
4546
TonicLogsClient {
4647
inner: Some(ClientInner {
4748
client,
48-
interceptor,
49+
interceptor: Mutex::new(interceptor),
4950
}),
5051
resource: Default::default(),
5152
}
@@ -54,11 +55,13 @@ impl TonicLogsClient {
5455

5556
#[async_trait]
5657
impl LogExporter for TonicLogsClient {
57-
async fn export(&mut self, batch: LogBatch<'_>) -> LogResult<()> {
58-
let (mut client, metadata, extensions) = match &mut self.inner {
58+
async fn export(&self, batch: LogBatch<'_>) -> LogResult<()> {
59+
let (mut client, metadata, extensions) = match &self.inner {
5960
Some(inner) => {
6061
let (m, e, _) = inner
6162
.interceptor
63+
.lock()
64+
.await // tokio::sync::Mutex doesn't return a poisoned error, so we can safely use the interceptor here
6265
.call(Request::new(()))
6366
.map_err(|e| LogError::Other(Box::new(e)))?
6467
.into_parts();

opentelemetry-otlp/src/logs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ impl LogExporter {
124124

125125
#[async_trait]
126126
impl opentelemetry_sdk::export::logs::LogExporter for LogExporter {
127-
async fn export(&mut self, batch: LogBatch<'_>) -> LogResult<()> {
127+
async fn export(&self, batch: LogBatch<'_>) -> LogResult<()> {
128128
self.client.export(batch).await
129129
}
130130

opentelemetry-prometheus/CHANGELOG.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22

33
## vNext
44

5-
- Bump MSRV to 1.70 [#2179](https://github.com/open-telemetry/opentelemetry-rust/pull/2179)
6-
- Update `opentelemetry` dependency version to 0.26
7-
- Update `opentelemetry_sdk` dependency version to 0.26
8-
- Update `opentelemetry-semantic-conventions` dependency version to 0.26
5+
## v0.27.0
6+
7+
- Update `opentelemetry` dependency version to 0.27
8+
- Update `opentelemetry_sdk` dependency version to 0.27
9+
- Update `opentelemetry-semantic-conventions` dependency version to 0.27
910

1011

1112
## v0.17.0

opentelemetry-prometheus/Cargo.toml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "opentelemetry-prometheus"
3-
version = "0.17.0"
3+
version = "0.27.0"
44
description = "Prometheus exporter for OpenTelemetry"
55
homepage = "https://github.com/open-telemetry/opentelemetry-rust"
66
repository = "https://github.com/open-telemetry/opentelemetry-rust"
@@ -21,17 +21,20 @@ rustdoc-args = ["--cfg", "docsrs"]
2121

2222
[dependencies]
2323
once_cell = { workspace = true }
24-
opentelemetry = { version = "0.26", default-features = false, features = ["metrics"] }
25-
opentelemetry_sdk = { version = "0.26", default-features = false, features = ["metrics"] }
24+
opentelemetry = { version = "0.27", default-features = false, features = ["metrics"] }
25+
opentelemetry_sdk = { version = "0.27", default-features = false, features = ["metrics"] }
2626
prometheus = "0.13"
2727
protobuf = "2.14"
28+
tracing = {workspace = true, optional = true} # optional for opentelemetry internal logging
2829

2930
[dev-dependencies]
30-
opentelemetry-semantic-conventions = { version = "0.26" }
31+
opentelemetry-semantic-conventions = { version = "0.27" }
3132
http-body-util = { workspace = true }
3233
hyper = { workspace = true, features = ["full"] }
3334
hyper-util = { workspace = true, features = ["full"] }
3435
tokio = { workspace = true, features = ["full"] }
3536

3637
[features]
38+
default = ["internal-logs"]
3739
prometheus-encoding = []
40+
internal-logs = ["tracing"]

opentelemetry-prometheus/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
[`Prometheus`] integration for applications instrumented with [`OpenTelemetry`].
88

99
**The development of prometheus exporter has halt until the Opentelemetry metrics API and SDK reaches 1.0. Current
10-
implementation is based on Opentelemetry API and SDK 0.24**.
10+
implementation is based on Opentelemetry API and SDK 0.27**.
1111

1212
[![Crates.io: opentelemetry-prometheus](https://img.shields.io/crates/v/opentelemetry-prometheus.svg)](https://crates.io/crates/opentelemetry-prometheus)
1313
[![Documentation](https://docs.rs/opentelemetry-prometheus/badge.svg)](https://docs.rs/opentelemetry-prometheus)

opentelemetry-prometheus/examples/hyper.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,17 +85,17 @@ pub async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
8585
http_counter: meter
8686
.u64_counter("http_requests_total")
8787
.with_description("Total number of HTTP requests made.")
88-
.init(),
88+
.build(),
8989
http_body_gauge: meter
9090
.u64_histogram("example.http_response_size")
9191
.with_unit("By")
9292
.with_description("The metrics HTTP response sizes in bytes.")
93-
.init(),
93+
.build(),
9494
http_req_histogram: meter
9595
.f64_histogram("example.http_request_duration")
9696
.with_unit("ms")
9797
.with_description("The HTTP request latencies in milliseconds.")
98-
.init(),
98+
.build(),
9999
});
100100

101101
let addr: SocketAddr = ([127, 0, 0, 1], 3000).into();

opentelemetry-prometheus/src/config.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use core::fmt;
22
use once_cell::sync::OnceCell;
3-
use opentelemetry::metrics::{MetricsError, Result};
4-
use opentelemetry_sdk::metrics::ManualReaderBuilder;
3+
use opentelemetry_sdk::metrics::{ManualReaderBuilder, MetricError, MetricResult};
54
use std::sync::{Arc, Mutex};
65

76
use crate::{Collector, PrometheusExporter, ResourceSelector};
@@ -116,7 +115,7 @@ impl ExporterBuilder {
116115
}
117116

118117
/// Creates a new [PrometheusExporter] from this configuration.
119-
pub fn build(self) -> Result<PrometheusExporter> {
118+
pub fn build(self) -> MetricResult<PrometheusExporter> {
120119
let reader = Arc::new(self.reader.build());
121120

122121
let collector = Collector {
@@ -135,7 +134,7 @@ impl ExporterBuilder {
135134
let registry = self.registry.unwrap_or_default();
136135
registry
137136
.register(Box::new(collector))
138-
.map_err(|e| MetricsError::Other(e.to_string()))?;
137+
.map_err(|e| MetricError::Other(e.to_string()))?;
139138

140139
Ok(PrometheusExporter { reader })
141140
}

0 commit comments

Comments
 (0)