Skip to content

Commit 858cd87

Browse files
authored
Merge branch 'main' into log-async-trait-impl
2 parents 3b4cd57 + 506a4f9 commit 858cd87

File tree

29 files changed

+120
-73
lines changed

29 files changed

+120
-73
lines changed

opentelemetry-appender-tracing/src/layer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ impl<'a, LR: LogRecord> EventVisitor<'a, LR> {
6969
}
7070
}
7171

72-
impl<'a, LR: LogRecord> tracing::field::Visit for EventVisitor<'a, LR> {
72+
impl<LR: LogRecord> tracing::field::Visit for EventVisitor<'_, LR> {
7373
fn record_debug(&mut self, field: &tracing::field::Field, value: &dyn std::fmt::Debug) {
7474
#[cfg(feature = "experimental_metadata_attributes")]
7575
if is_duplicated_metadata(field.name()) {

opentelemetry-http/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use opentelemetry::propagation::{Extractor, Injector};
1313
/// for example usage.
1414
pub struct HeaderInjector<'a>(pub &'a mut http::HeaderMap);
1515

16-
impl<'a> Injector for HeaderInjector<'a> {
16+
impl Injector for HeaderInjector<'_> {
1717
/// Set a key and value in the HeaderMap. Does nothing if the key or value are not valid inputs.
1818
fn set(&mut self, key: &str, value: String) {
1919
if let Ok(name) = http::header::HeaderName::from_bytes(key.as_bytes()) {
@@ -30,7 +30,7 @@ impl<'a> Injector for HeaderInjector<'a> {
3030
/// for example usage.
3131
pub struct HeaderExtractor<'a>(pub &'a http::HeaderMap);
3232

33-
impl<'a> Extractor for HeaderExtractor<'a> {
33+
impl Extractor for HeaderExtractor<'_> {
3434
/// Get a value for a key from the HeaderMap. If the value is not valid ASCII, returns None.
3535
fn get(&self, key: &str) -> Option<&str> {
3636
self.0.get(key).and_then(|value| value.to_str().ok())

opentelemetry-jaeger-propagator/Cargo.toml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ rustdoc-args = ["--cfg", "docsrs"]
2323
opentelemetry = { version = "0.27", default-features = false, features = [
2424
"trace",
2525
], path = "../opentelemetry" }
26+
tracing = {workspace = true, optional = true} # optional for opentelemetry internal logging
2627

2728
[dev-dependencies]
2829
opentelemetry = { features = ["testing"], path = "../opentelemetry" }
2930

3031
[features]
31-
default = []
32+
default = ["internal-logs"]
33+
internal-logs = ["tracing"]

opentelemetry-otlp/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,4 @@ reqwest-rustls-webpki-roots = ["reqwest", "opentelemetry-http/reqwest-rustls-web
8383
hyper-client = ["opentelemetry-http/hyper"]
8484

8585
# test
86-
integration-testing = ["tonic", "prost", "tokio/full", "trace"]
86+
integration-testing = ["tonic", "prost", "tokio/full", "trace", "logs"]

opentelemetry-otlp/tests/integration_test/Cargo.toml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,15 @@ testcontainers = "0.15.0"
1616

1717
[target.'cfg(unix)'.dependencies]
1818
opentelemetry-appender-log = { path = "../../../opentelemetry-appender-log", default-features = false}
19-
opentelemetry-otlp = { path = "../../../opentelemetry-otlp", features = ["tonic", "metrics", "logs"] }
19+
opentelemetry-otlp = { path = "../../../opentelemetry-otlp", default-features = false }
2020
opentelemetry-semantic-conventions = { path = "../../../opentelemetry-semantic-conventions" }
21+
22+
[features]
23+
hyper-client = ["opentelemetry-otlp/hyper-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"]
24+
reqwest-client = ["opentelemetry-otlp/reqwest-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"]
25+
reqwest-blocking-client = ["opentelemetry-otlp/reqwest-blocking-client", "opentelemetry-otlp/http-proto", "opentelemetry-otlp/trace","opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"]
26+
tonic-client = ["opentelemetry-otlp/grpc-tonic", "opentelemetry-otlp/trace", "opentelemetry-otlp/logs", "opentelemetry-otlp/metrics"]
27+
28+
# Keep tonic as the default client
29+
default = ["tonic-client"]
30+

opentelemetry-otlp/tests/integration_test/tests/logs.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,18 @@ use std::fs::File;
1212
use std::os::unix::fs::MetadataExt;
1313

1414
fn init_logs() -> Result<sdklogs::LoggerProvider, LogError> {
15-
let exporter = LogExporter::builder().with_tonic().build()?;
15+
let exporter_builder = LogExporter::builder();
16+
#[cfg(feature = "tonic-client")]
17+
let exporter_builder = exporter_builder.with_tonic();
18+
#[cfg(not(feature = "tonic-client"))]
19+
#[cfg(any(
20+
feature = "hyper-client",
21+
feature = "reqwest-client",
22+
feature = "reqwest-blocking-client"
23+
))]
24+
let exporter_builder = exporter_builder.with_http();
25+
26+
let exporter = exporter_builder.build()?;
1627

1728
Ok(LoggerProvider::builder()
1829
.with_batch_exporter(exporter, runtime::Tokio)

opentelemetry-otlp/tests/integration_test/tests/traces.rs

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ use opentelemetry::{
88
trace::{TraceContextExt, Tracer},
99
Key, KeyValue,
1010
};
11+
use opentelemetry_otlp::SpanExporter;
12+
1113
use opentelemetry_proto::tonic::trace::v1::TracesData;
1214
use opentelemetry_sdk::{runtime, trace as sdktrace, Resource};
1315
use std::error::Error;
@@ -16,9 +18,19 @@ use std::io::Write;
1618
use std::os::unix::fs::MetadataExt;
1719

1820
fn init_tracer_provider() -> Result<sdktrace::TracerProvider, TraceError> {
19-
let exporter = opentelemetry_otlp::SpanExporter::builder()
20-
.with_tonic()
21-
.build()?;
21+
let exporter_builder = SpanExporter::builder();
22+
#[cfg(feature = "tonic-client")]
23+
let exporter_builder = exporter_builder.with_tonic();
24+
#[cfg(not(feature = "tonic-client"))]
25+
#[cfg(any(
26+
feature = "hyper-client",
27+
feature = "reqwest-client",
28+
feature = "reqwest-blocking-client"
29+
))]
30+
let exporter_builder = exporter_builder.with_http();
31+
32+
let exporter = exporter_builder.build()?;
33+
2234
Ok(opentelemetry_sdk::trace::TracerProvider::builder()
2335
.with_batch_exporter(exporter, runtime::Tokio)
2436
.with_resource(Resource::new(vec![KeyValue::new(

opentelemetry-proto/src/transform/metrics.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,8 @@ pub mod tonic {
295295
.iter()
296296
.map(|dp| TonicNumberDataPoint {
297297
attributes: dp.attributes.iter().map(Into::into).collect(),
298-
start_time_unix_nano: dp.start_time.map(to_nanos).unwrap_or_default(),
299-
time_unix_nano: dp.time.map(to_nanos).unwrap_or_default(),
298+
start_time_unix_nano: to_nanos(dp.start_time),
299+
time_unix_nano: to_nanos(dp.time),
300300
exemplars: dp.exemplars.iter().map(Into::into).collect(),
301301
flags: TonicDataPointFlags::default() as u32,
302302
value: Some(dp.value.into()),
@@ -319,8 +319,8 @@ pub mod tonic {
319319
.iter()
320320
.map(|dp| TonicNumberDataPoint {
321321
attributes: dp.attributes.iter().map(Into::into).collect(),
322-
start_time_unix_nano: dp.start_time.map(to_nanos).unwrap_or_default(),
323-
time_unix_nano: dp.time.map(to_nanos).unwrap_or_default(),
322+
start_time_unix_nano: to_nanos(dp.start_time),
323+
time_unix_nano: to_nanos(dp.time),
324324
exemplars: dp.exemplars.iter().map(Into::into).collect(),
325325
flags: TonicDataPointFlags::default() as u32,
326326
value: Some(dp.value.into()),

opentelemetry-sdk/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22

33
## vNext
44

5+
- *Breaking* SimpleLogProcessor modified to be generic over `LogExporter` to
6+
avoid dynamic dispatch to invoke exporter. If you were using
7+
`with_simple_exporter` to add `LogExporter` with SimpleLogProcessor, this is a
8+
transparent change.
9+
[#2338](https://github.com/open-telemetry/opentelemetry-rust/pull/2338)
10+
511
## 0.27.1
612

713
Released 2024-Nov-27

opentelemetry-sdk/src/export/logs/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ impl<'a> LogBatch<'a> {
3838
///
3939
/// Note - this is not a public function, and should not be used directly. This would be
4040
/// made private in the future.
41-
4241
pub fn new(data: &'a [(&'a LogRecord, &'a InstrumentationScope)]) -> LogBatch<'a> {
4342
LogBatch { data }
4443
}

0 commit comments

Comments
 (0)