Skip to content

Commit

Permalink
fix(server): fix optional HTTP telemetry transport, update dependenci…
Browse files Browse the repository at this point in the history
…es (#1576)

Fix an issue with `HTTP` transport for open telemetry. Additionally,
update all dependencies.
  • Loading branch information
spetz authored Feb 22, 2025
1 parent dc38381 commit d34b9c9
Show file tree
Hide file tree
Showing 9 changed files with 74 additions and 54 deletions.
44 changes: 22 additions & 22 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bench/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ toml = "0.8.20"
tracing = { version = "0.1.41" }
tracing-appender = "0.2.3"
tracing-subscriber = { version = "0.3.19", features = ["fmt", "env-filter"] }
uuid = { version = "1.13.2", features = ["serde"] }
uuid = { version = "1.14.0", features = ["serde"] }

[[bin]]
name = "iggy-bench"
Expand Down
2 changes: 1 addition & 1 deletion bench/report/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sysinfo = "0.33.1"
tracing = "0.1"
uuid = { version = "1.13.2", features = ["serde"] }
uuid = { version = "1.14.0", features = ["serde"] }
2 changes: 1 addition & 1 deletion examples/src/multi-tenant/consumer/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ async fn main() -> anyhow::Result<(), Box<dyn Error>> {
}

print_info("Disconnecting root client");
root_client.disconnect().await?;
root_client.shutdown().await?;

print_info("Creating clients for each tenant");
let mut tenants = Vec::new();
Expand Down
2 changes: 1 addition & 1 deletion examples/src/multi-tenant/producer/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ async fn main() -> anyhow::Result<(), Box<dyn Error>> {
}

print_info("Disconnecting root client");
root_client.disconnect().await?;
root_client.shutdown().await?;

print_info("Creating clients for each tenant");
let mut tenants = Vec::new();
Expand Down
2 changes: 1 addition & 1 deletion integration/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ test-case = "3.3.1"
tokio = { version = "1.43.0", features = ["full"] }
tracing-subscriber = { version = "0.3.19", features = ["fmt", "env-filter"] }
twox-hash = { version = "2.1.0", features = ["xxhash32"] }
uuid = { version = "1.13.2", features = ["v7", "fast-rng", "zerocopy"] }
uuid = { version = "1.14.0", features = ["v7", "fast-rng", "zerocopy"] }
zip = "2.2.2"

# Some tests are failing in CI due to lack of IPv6 interfaces
Expand Down
2 changes: 1 addition & 1 deletion sdk/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ tokio-rustls = { version = "0.26.1" }
toml = "0.8.20"
tracing = { version = "0.1.41" }
trait-variant = { version = "0.1.2" }
uuid = { version = "1.13.2", features = ["v7", "fast-rng", "zerocopy"] }
uuid = { version = "1.14.0", features = ["v7", "fast-rng", "zerocopy"] }
webpki-roots = { version = "0.26.8" }

[build-dependencies]
Expand Down
7 changes: 5 additions & 2 deletions server/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "server"
version = "0.4.213"
version = "0.4.214"
edition = "2021"
build = "src/build.rs"
license = "Apache-2.0"
Expand Down Expand Up @@ -64,6 +64,9 @@ opentelemetry_sdk = { version = "0.28.0", features = [
"logs",
"trace",
"tokio",
"experimental_async_runtime",
"experimental_logs_batch_log_processor_with_async_runtime",
"experimental_trace_batch_span_processor_with_async_runtime"
] }
prometheus-client = "0.23.1"
quinn = { version = "0.11.6" }
Expand Down Expand Up @@ -99,7 +102,7 @@ tracing-opentelemetry = { version = "0.29.0" }
tracing-subscriber = { version = "0.3.19", features = ["fmt", "env-filter"] }
twox-hash = { version = "2.1.0", features = ["xxhash32"] }
ulid = "1.2.0"
uuid = { version = "1.13.2", features = ["v7", "fast-rng", "zerocopy"] }
uuid = { version = "1.14.0", features = ["v7", "fast-rng", "zerocopy"] }

[dev-dependencies]
mockall = "0.13.1"
Expand Down
65 changes: 41 additions & 24 deletions server/src/log/logger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,10 @@ use opentelemetry::trace::TracerProvider;
use opentelemetry::KeyValue;
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
use opentelemetry_otlp::{WithExportConfig, WithHttpConfig};
use opentelemetry_sdk::logs::log_processor_with_async_runtime;
use opentelemetry_sdk::propagation::TraceContextPropagator;
use opentelemetry_sdk::runtime;
use opentelemetry_sdk::trace::span_processor_with_async_runtime;
use opentelemetry_sdk::Resource;
use std::io::{self, Write};
use std::path::PathBuf;
Expand Down Expand Up @@ -183,18 +186,25 @@ impl Logging {
.expect("Failed to initialize gRPC logger."),
)
.build(),
TelemetryTransport::HTTP => opentelemetry_sdk::logs::SdkLoggerProvider::builder()
.with_resource(resource.clone())
.with_batch_exporter(
opentelemetry_otlp::LogExporter::builder()
.with_http()
.with_http_client(reqwest::Client::new())
.with_endpoint(self.telemetry_config.logs.endpoint.clone())
.with_protocol(opentelemetry_otlp::Protocol::HttpBinary)
.build()
.expect("Failed to initialize HTTP logger."),
)
.build(),
TelemetryTransport::HTTP => {
let log_exporter = opentelemetry_otlp::LogExporter::builder()
.with_http()
.with_http_client(reqwest::Client::new())
.with_endpoint(self.telemetry_config.logs.endpoint.clone())
.with_protocol(opentelemetry_otlp::Protocol::HttpBinary)
.build()
.expect("Failed to initialize HTTP logger.");
opentelemetry_sdk::logs::SdkLoggerProvider::builder()
.with_resource(resource.clone())
.with_log_processor(
log_processor_with_async_runtime::BatchLogProcessor::builder(
log_exporter,
runtime::Tokio,
)
.build(),
)
.build()
}
};

let tracer_provider = match self.telemetry_config.traces.transport {
Expand All @@ -208,18 +218,25 @@ impl Logging {
.expect("Failed to initialize gRPC tracer."),
)
.build(),
TelemetryTransport::HTTP => opentelemetry_sdk::trace::SdkTracerProvider::builder()
.with_resource(resource.clone())
.with_batch_exporter(
opentelemetry_otlp::SpanExporter::builder()
.with_http()
.with_http_client(reqwest::Client::new())
.with_endpoint(self.telemetry_config.traces.endpoint.clone())
.with_protocol(opentelemetry_otlp::Protocol::HttpBinary)
.build()
.expect("Failed to initialize HTTP tracer."),
)
.build(),
TelemetryTransport::HTTP => {
let trace_exporter = opentelemetry_otlp::SpanExporter::builder()
.with_http()
.with_http_client(reqwest::Client::new())
.with_endpoint(self.telemetry_config.traces.endpoint.clone())
.with_protocol(opentelemetry_otlp::Protocol::HttpBinary)
.build()
.expect("Failed to initialize HTTP tracer.");
opentelemetry_sdk::trace::SdkTracerProvider::builder()
.with_resource(resource.clone())
.with_span_processor(
span_processor_with_async_runtime::BatchSpanProcessor::builder(
trace_exporter,
runtime::Tokio,
)
.build(),
)
.build()
}
};

let tracer = tracer_provider.tracer(service_name);
Expand Down

0 comments on commit d34b9c9

Please sign in to comment.