Skip to content

Commit f229d31

Browse files
authored
Merge branch 'main' into observable-gauge-collect-if-changed
2 parents 46475c0 + 5f7f2d5 commit f229d31

File tree

49 files changed

+686
-623
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+686
-623
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,9 @@ Project versioning information and stability guarantees can be found
6868
use opentelemetry::trace::{
6969
TraceContextExt,
7070
Tracer,
71-
TracerProvider as _,
71+
TracerProvider,
7272
};
73-
use opentelemetry_sdk::trace::TracerProvider;
73+
use opentelemetry_sdk::trace::SdkTracerProvider;
7474

7575
fn main() {
7676
// Create a new trace pipeline that prints to stdout

examples/tracing-grpc/src/client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ use opentelemetry::{
99
Context, KeyValue,
1010
};
1111

12-
fn init_tracer() -> sdktrace::TracerProvider {
12+
fn init_tracer() -> sdktrace::SdkTracerProvider {
1313
global::set_text_map_propagator(TraceContextPropagator::new());
1414
// Install stdout exporter pipeline to be able to retrieve the collected spans.
15-
let provider = sdktrace::TracerProvider::builder()
15+
let provider = sdktrace::SdkTracerProvider::builder()
1616
.with_batch_exporter(SpanExporter::default())
1717
.build();
1818

examples/tracing-grpc/src/server.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ use opentelemetry::{
55
propagation::Extractor,
66
trace::{Span, SpanKind, Tracer},
77
};
8-
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::TracerProvider};
8+
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::SdkTracerProvider};
99
use opentelemetry_stdout::SpanExporter;
1010
use tonic::{transport::Server, Request, Response, Status};
1111

12-
fn init_tracer() -> TracerProvider {
12+
fn init_tracer() -> SdkTracerProvider {
1313
global::set_text_map_propagator(TraceContextPropagator::new());
1414
// Install stdout exporter pipeline to be able to retrieve the collected spans.
15-
let provider = TracerProvider::builder()
15+
let provider = SdkTracerProvider::builder()
1616
.with_batch_exporter(SpanExporter::default())
1717
.build();
1818

examples/tracing-http-propagator/src/client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ use opentelemetry::{
66
Context, KeyValue,
77
};
88
use opentelemetry_http::{Bytes, HeaderInjector};
9-
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::TracerProvider};
9+
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::SdkTracerProvider};
1010
use opentelemetry_stdout::SpanExporter;
1111

1212
fn init_tracer() {
1313
global::set_text_map_propagator(TraceContextPropagator::new());
1414
// Install stdout exporter pipeline to be able to retrieve the collected spans.
1515
// For the demonstration, use `Sampler::AlwaysOn` sampler to sample all traces.
16-
let provider = TracerProvider::builder()
16+
let provider = SdkTracerProvider::builder()
1717
.with_simple_exporter(SpanExporter::default())
1818
.build();
1919

examples/tracing-http-propagator/src/server.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use opentelemetry::{
77
Context, KeyValue,
88
};
99
use opentelemetry_http::{Bytes, HeaderExtractor};
10-
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::TracerProvider};
10+
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::SdkTracerProvider};
1111
use opentelemetry_semantic_conventions::trace;
1212
use opentelemetry_stdout::SpanExporter;
1313
use std::{convert::Infallible, net::SocketAddr};
@@ -93,7 +93,7 @@ fn init_tracer() {
9393

9494
// Setup tracerprovider with stdout exporter
9595
// that prints the spans to stdout.
96-
let provider = TracerProvider::builder()
96+
let provider = SdkTracerProvider::builder()
9797
.with_simple_exporter(SpanExporter::default())
9898
.build();
9999

examples/tracing-jaeger/src/main.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ use opentelemetry::{
33
trace::{TraceContextExt, TraceError, Tracer},
44
KeyValue,
55
};
6-
use opentelemetry_sdk::trace::TracerProvider;
6+
use opentelemetry_sdk::trace::SdkTracerProvider;
77
use opentelemetry_sdk::Resource;
88

99
use std::error::Error;
1010

11-
fn init_tracer_provider() -> Result<opentelemetry_sdk::trace::TracerProvider, TraceError> {
11+
fn init_tracer_provider() -> Result<opentelemetry_sdk::trace::SdkTracerProvider, TraceError> {
1212
let exporter = opentelemetry_otlp::SpanExporter::builder()
1313
.with_tonic()
1414
.build()?;
1515

16-
Ok(TracerProvider::builder()
16+
Ok(SdkTracerProvider::builder()
1717
.with_batch_exporter(exporter)
1818
.with_resource(
1919
Resource::builder()

opentelemetry-appender-tracing/src/layer.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,13 +230,13 @@ const fn severity_of_level(level: &Level) -> Severity {
230230
mod tests {
231231
use crate::layer;
232232
use opentelemetry::logs::Severity;
233-
use opentelemetry::trace::TracerProvider as _;
233+
use opentelemetry::trace::TracerProvider;
234234
use opentelemetry::trace::{TraceContextExt, TraceFlags, Tracer};
235235
use opentelemetry::{logs::AnyValue, Key};
236236
use opentelemetry_sdk::logs::InMemoryLogExporter;
237237
use opentelemetry_sdk::logs::{LogBatch, LogExporter};
238238
use opentelemetry_sdk::logs::{LogRecord, LogResult, SdkLoggerProvider};
239-
use opentelemetry_sdk::trace::{Sampler, TracerProvider};
239+
use opentelemetry_sdk::trace::{Sampler, SdkTracerProvider};
240240
use tracing::{error, warn};
241241
use tracing_subscriber::prelude::__tracing_subscriber_SubscriberExt;
242242
use tracing_subscriber::util::SubscriberInitExt;
@@ -424,7 +424,7 @@ mod tests {
424424
let _guard = tracing::subscriber::set_default(subscriber);
425425

426426
// setup tracing as well.
427-
let tracer_provider = TracerProvider::builder()
427+
let tracer_provider = SdkTracerProvider::builder()
428428
.with_sampler(Sampler::AlwaysOn)
429429
.build();
430430
let tracer = tracer_provider.tracer("test-tracer");
@@ -528,7 +528,7 @@ mod tests {
528528

529529
// setup tracing layer to compare trace/span IDs against
530530
let span_exporter = InMemorySpanExporterBuilder::new().build();
531-
let tracer_provider = TracerProvider::builder()
531+
let tracer_provider = SdkTracerProvider::builder()
532532
.with_simple_exporter(span_exporter.clone())
533533
.build();
534534
let tracer = tracer_provider.tracer("test-tracer");
@@ -657,7 +657,7 @@ mod tests {
657657
drop(tracing_log::LogTracer::init());
658658

659659
// setup tracing as well.
660-
let tracer_provider = TracerProvider::builder()
660+
let tracer_provider = SdkTracerProvider::builder()
661661
.with_sampler(Sampler::AlwaysOn)
662662
.build();
663663
let tracer = tracer_provider.tracer("test-tracer");

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use opentelemetry_otlp::{LogExporter, MetricExporter, Protocol, SpanExporter};
1111
use opentelemetry_sdk::{
1212
logs::SdkLoggerProvider,
1313
metrics::{MetricError, SdkMeterProvider},
14-
trace::{self as sdktrace, TracerProvider},
14+
trace::{self as sdktrace, SdkTracerProvider},
1515
};
1616
use opentelemetry_sdk::{
1717
logs::{self as sdklogs},
@@ -41,14 +41,14 @@ fn init_logs() -> Result<sdklogs::SdkLoggerProvider, opentelemetry_sdk::logs::Lo
4141
.build())
4242
}
4343

44-
fn init_traces() -> Result<sdktrace::TracerProvider, TraceError> {
44+
fn init_traces() -> Result<sdktrace::SdkTracerProvider, TraceError> {
4545
let exporter = SpanExporter::builder()
4646
.with_http()
4747
.with_protocol(Protocol::HttpBinary) //can be changed to `Protocol::HttpJson` to export in JSON format
4848
.with_endpoint("http://localhost:4318/v1/traces")
4949
.build()?;
5050

51-
Ok(TracerProvider::builder()
51+
Ok(SdkTracerProvider::builder()
5252
.with_batch_exporter(exporter)
5353
.with_resource(RESOURCE.clone())
5454
.build())

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ static RESOURCE: Lazy<Resource> = Lazy::new(|| {
2020
.build()
2121
});
2222

23-
fn init_traces() -> Result<sdktrace::TracerProvider, TraceError> {
23+
fn init_traces() -> Result<sdktrace::SdkTracerProvider, TraceError> {
2424
let exporter = SpanExporter::builder()
2525
.with_tonic()
2626
.with_endpoint("http://localhost:4317")
2727
.build()?;
28-
Ok(sdktrace::TracerProvider::builder()
28+
Ok(sdktrace::SdkTracerProvider::builder()
2929
.with_resource(RESOURCE.clone())
3030
.with_batch_exporter(exporter)
3131
.build())

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

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,35 @@
11
use std::sync::Arc;
22

3+
use super::OtlpHttpClient;
34
use futures_core::future::BoxFuture;
45
use http::{header::CONTENT_TYPE, Method};
5-
use opentelemetry::{otel_debug, trace::TraceError};
6-
use opentelemetry_sdk::trace::{ExportResult, SpanData, SpanExporter};
7-
8-
use super::OtlpHttpClient;
6+
use opentelemetry::otel_debug;
7+
use opentelemetry_sdk::{
8+
error::{OTelSdkError, OTelSdkResult},
9+
trace::{SpanData, SpanExporter},
10+
};
911

1012
impl SpanExporter for OtlpHttpClient {
11-
fn export(&mut self, batch: Vec<SpanData>) -> BoxFuture<'static, ExportResult> {
13+
fn export(&mut self, batch: Vec<SpanData>) -> BoxFuture<'static, OTelSdkResult> {
1214
let client = match self
1315
.client
1416
.lock()
15-
.map_err(|e| TraceError::Other(e.to_string().into()))
17+
.map_err(|e| OTelSdkError::InternalFailure(format!("Mutex lock failed: {}", e)))
1618
.and_then(|g| match &*g {
1719
Some(client) => Ok(Arc::clone(client)),
18-
_ => Err(TraceError::Other("exporter is already shut down".into())),
20+
_ => Err(OTelSdkError::AlreadyShutdown),
1921
}) {
2022
Ok(client) => client,
2123
Err(err) => return Box::pin(std::future::ready(Err(err))),
2224
};
2325

2426
let (body, content_type) = match self.build_trace_export_body(batch) {
2527
Ok(body) => body,
26-
Err(e) => return Box::pin(std::future::ready(Err(e))),
28+
Err(e) => {
29+
return Box::pin(std::future::ready(Err(OTelSdkError::InternalFailure(
30+
e.to_string(),
31+
))))
32+
}
2733
};
2834

2935
let mut request = match http::Request::builder()
@@ -34,10 +40,9 @@ impl SpanExporter for OtlpHttpClient {
3440
{
3541
Ok(req) => req,
3642
Err(e) => {
37-
return Box::pin(std::future::ready(Err(crate::Error::RequestFailed(
38-
Box::new(e),
39-
)
40-
.into())))
43+
return Box::pin(std::future::ready(Err(OTelSdkError::InternalFailure(
44+
e.to_string(),
45+
))))
4146
}
4247
};
4348

@@ -48,7 +53,10 @@ impl SpanExporter for OtlpHttpClient {
4853
Box::pin(async move {
4954
let request_uri = request.uri().to_string();
5055
otel_debug!(name: "HttpTracesClient.CallingExport");
51-
let response = client.send_bytes(request).await?;
56+
let response = client
57+
.send_bytes(request)
58+
.await
59+
.map_err(|e| OTelSdkError::InternalFailure(format!("{e:?}")))?;
5260

5361
if !response.status().is_success() {
5462
let error = format!(
@@ -57,15 +65,23 @@ impl SpanExporter for OtlpHttpClient {
5765
request_uri,
5866
response.body()
5967
);
60-
return Err(TraceError::Other(error.into()));
68+
return Err(OTelSdkError::InternalFailure(error));
6169
}
6270

6371
Ok(())
6472
})
6573
}
6674

67-
fn shutdown(&mut self) {
68-
let _ = self.client.lock().map(|mut c| c.take());
75+
fn shutdown(&mut self) -> OTelSdkResult {
76+
let mut client_guard = self.client.lock().map_err(|e| {
77+
OTelSdkError::InternalFailure(format!("Failed to acquire client lock: {}", e))
78+
})?;
79+
80+
if client_guard.take().is_none() {
81+
return Err(OTelSdkError::AlreadyShutdown);
82+
}
83+
84+
Ok(())
6985
}
7086

7187
fn set_resource(&mut self, resource: &opentelemetry_sdk::Resource) {

0 commit comments

Comments
 (0)