Skip to content

Commit

Permalink
chore: Update opentelemetry dependencies (#837)
Browse files Browse the repository at this point in the history
* chore: Update opentelemetry dependencies

* Format Rust code using rustfmt

* update examples

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
  • Loading branch information
chrislearn and github-actions[bot] committed Jul 15, 2024
1 parent 614c3a8 commit 4c22eb2
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 33 deletions.
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -81,10 +81,10 @@ native-tls = "0.2"
nix = { version = "0.29", default-features = false }
once_cell = "1"
openssl = "0.10"
opentelemetry-http = { version = "0.12", default-features = false }
opentelemetry-semantic-conventions = { version = "0.15", default-features = false }
opentelemetry = { version = "0.24", default-features = false }
opentelemetry-http = { version = "0.13", default-features = false }
opentelemetry-prometheus = { version = "0.16", default-features = false }
opentelemetry = { version = "0.23", default-features = false }
opentelemetry-semantic-conventions = { version = "0.16", default-features = false }
parking_lot = "0.12"
path-slash = "0.2"
percent-encoding = "2"
Expand Down
1 change: 0 additions & 1 deletion crates/otel/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ opentelemetry-http = { workspace = true }
opentelemetry-semantic-conventions = { workspace = true }
opentelemetry = { workspace = true, features = ["metrics"] }
salvo_core = { workspace = true, default-features = false }
headers03 = {version = "0.3", package = "headers"}

[dev-dependencies]
salvo_core = { workspace = true, features = ["test"] }
Expand Down
4 changes: 2 additions & 2 deletions crates/otel/src/metrics.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use std::time::Instant;

use opentelemetry::metrics::{Counter, Histogram, Unit};
use opentelemetry::metrics::{Counter, Histogram};
use opentelemetry::{global, KeyValue};
use opentelemetry_semantic_conventions::trace;
use salvo_core::http::ResBody;
Expand Down Expand Up @@ -34,7 +34,7 @@ impl Metrics {
.init(),
duration: meter
.f64_histogram("salvo_request_duration_ms")
.with_unit(Unit::new("milliseconds"))
.with_unit("milliseconds")
.with_description("request duration histogram (in milliseconds, since start of service)")
.init(),
}
Expand Down
10 changes: 6 additions & 4 deletions crates/otel/src/tracing.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
use headers03::{HeaderMap, HeaderName, HeaderValue};
use opentelemetry::trace::{FutureExt, Span, SpanKind, TraceContextExt, Tracer};
use opentelemetry::{global, Context, KeyValue};
use opentelemetry_http::HeaderExtractor;
use opentelemetry_semantic_conventions::{resource, trace};
use salvo_core::http::headers::{self, HeaderMapExt};
use opentelemetry_semantic_conventions::{attribute, resource, trace};
use salvo_core::http::headers::{self, HeaderMap, HeaderMapExt, HeaderName, HeaderValue};
use salvo_core::prelude::*;

/// Middleware for tracing with OpenTelemetry.
Expand Down Expand Up @@ -74,7 +73,10 @@ where
span.add_event(event.to_string(), vec![]);
span.set_attribute(KeyValue::new(trace::HTTP_RESPONSE_STATUS_CODE, status.as_u16() as i64));
if let Some(content_length) = res.headers().typed_get::<headers::ContentLength>() {
span.set_attribute(KeyValue::new(trace::HTTP_RESPONSE_BODY_SIZE, content_length.0 as i64));
span.set_attribute(KeyValue::new(
attribute::HTTP_RESPONSE_BODY_SIZE,
content_length.0 as i64,
));
}
}
.with_context(Context::current_with_span(span))
Expand Down
9 changes: 5 additions & 4 deletions examples/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,18 @@ sea-orm-migration = "0.12"
eyre = "0.6"
tera = "1.3"
futures = "0.3"
opentelemetry = "0.23.0"
opentelemetry-http = "0.12.0"
opentelemetry-otlp = {version = "0.16.0" }
opentelemetry = "0.24.0"
opentelemetry-http = "0.13.0"
opentelemetry-otlp = {version = "0.17.0" }
opentelemetry-prometheus = "0.16.0"
opentelemetry_sdk = "0.23.0"
opentelemetry_sdk = "0.24.0"
tokio-stream = "0.1.14"
async-stream = "0.3.5"
futures-util = { version = "0.3", default-features = true }
jsonwebtoken = "9"
once_cell = "1"
parking_lot = "0.12"
reqwest = "0.12"
salvo = { path = "../crates/salvo", default-features = true }
serde = "1"
serde_json = "1"
Expand Down
2 changes: 1 addition & 1 deletion examples/otel-jaeger/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ tokio = { workspace = true, features = ["macros"] }
tracing.workspace = true
tracing-subscriber.workspace = true
opentelemetry = { workspace = true, features = ["metrics"] }
reqwest = "0.11"
reqwest = { workspace = true }
prometheus = "0.13"
opentelemetry-prometheus.workspace = true
opentelemetry-http.workspace = true
Expand Down
11 changes: 6 additions & 5 deletions examples/otel-jaeger/src/client.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,26 @@ use opentelemetry::{
};
use opentelemetry_http::HeaderInjector;
use opentelemetry_otlp::WithExportConfig;
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::Tracer};
use opentelemetry_sdk::propagation::TraceContextPropagator;
use reqwest::{Client, Method, Url};

fn init_tracer() -> Tracer {
fn init_tracer() {
global::set_text_map_propagator(TraceContextPropagator::new());
opentelemetry_otlp::new_pipeline()
let provider = opentelemetry_otlp::new_pipeline()
.tracing()
.with_exporter(
opentelemetry_otlp::new_exporter()
.http()
.with_endpoint("http://localhost:14268/api/traces"),
)
.install_batch(opentelemetry_sdk::runtime::Tokio)
.unwrap()
.unwrap();
let _ = global::set_tracer_provider(provider);
}

#[tokio::main]
async fn main() {
let _tracer = init_tracer();
init_tracer();
let client = Client::new();
let span = global::tracer("example-opentelemetry/client").start("request/server1");
let cx = Context::current_with_span(span);
Expand Down
11 changes: 6 additions & 5 deletions examples/otel-jaeger/src/server1.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
use std::str::FromStr;
use std::sync::Arc;

use opentelemetry::trace::{FutureExt, SpanKind, TraceContextExt, Tracer as _};
use opentelemetry::trace::{FutureExt, SpanKind, TraceContextExt, Tracer as _, TracerProvider as _};
use opentelemetry::{global, KeyValue};
use opentelemetry_http::HeaderInjector;
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::Tracer, Resource};
use opentelemetry_sdk::trace::{Tracer, TracerProvider};
use opentelemetry_sdk::{propagation::TraceContextPropagator, Resource};
use reqwest::{Client, Method, Url};
use salvo::otel::{Metrics, Tracing};
use salvo::prelude::*;

mod exporter;
use exporter::Exporter;

fn init_tracer() -> Tracer {
fn init_tracer_provider() -> TracerProvider {
global::set_text_map_propagator(TraceContextPropagator::new());
opentelemetry_otlp::new_pipeline()
.tracing()
.with_trace_config(
opentelemetry_sdk::trace::config()
opentelemetry_sdk::trace::Config::default()
.with_resource(Resource::new(vec![KeyValue::new("service.name", "server1")])),
)
.with_exporter(opentelemetry_otlp::new_exporter().tonic())
Expand Down Expand Up @@ -66,7 +67,7 @@ async fn index(req: &mut Request, depot: &mut Depot) -> String {
async fn main() {
tracing_subscriber::fmt().init();

let tracer = init_tracer();
let tracer = init_tracer_provider().tracer("app");
let router = Router::new()
.hoop(affix::inject(Arc::new(tracer.clone())))
.hoop(Metrics::new())
Expand Down
10 changes: 5 additions & 5 deletions examples/otel-jaeger/src/server2.rs
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
use opentelemetry::{global, KeyValue};
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::Tracer, Resource};
use opentelemetry::{global, trace::TracerProvider as _, KeyValue};
use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::TracerProvider, Resource};
use salvo::otel::{Metrics, Tracing};
use salvo::prelude::*;

mod exporter;
use exporter::Exporter;

fn init_tracer() -> Tracer {
fn init_tracer_provider() -> TracerProvider {
global::set_text_map_propagator(TraceContextPropagator::new());
opentelemetry_otlp::new_pipeline()
.tracing()
.with_trace_config(
opentelemetry_sdk::trace::config()
opentelemetry_sdk::trace::Config::default()
.with_resource(Resource::new(vec![KeyValue::new("service.name", "server2")])),
)
.with_exporter(opentelemetry_otlp::new_exporter().tonic())
Expand All @@ -28,7 +28,7 @@ async fn index(req: &mut Request) -> String {
async fn main() {
tracing_subscriber::fmt().init();

let tracer = init_tracer();
let tracer = init_tracer_provider().tracer("app");
let router = Router::new()
.hoop(Metrics::new())
.hoop(Tracing::new(tracer))
Expand Down
6 changes: 3 additions & 3 deletions examples/proxy-simple/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ use salvo::prelude::*;
async fn main() {
tracing_subscriber::fmt().init();

// In this example, if the requested URL begins with <http://127.0.0.1:5800/>, the proxy goes to
// <https://www.rust-lang.org>; if the requested URL begins with <http://localhost:5800/>, the proxy
// goes to <https://www.rust-lang.org>.
// In this example, if the requested URL begins with <http://127.0.0.1:5800/>, the proxy goes to
// <https://www.rust-lang.org>; if the requested URL begins with <http://localhost:5800/>, the proxy
// goes to <https://www.rust-lang.org>.
let router = Router::new()
.push(
Router::new()
Expand Down

0 comments on commit 4c22eb2

Please sign in to comment.