From 11790d7f6c0efbab879ceba9f13e1f8cdf46bbfb Mon Sep 17 00:00:00 2001 From: Sunli Date: Mon, 25 Nov 2024 10:21:18 +0800 Subject: [PATCH] Bump `opentelemetry` to `0.27.0` --- .../grpc/helloworld_compressed/Cargo.toml | 2 +- examples/poem/opentelemetry-jaeger/Cargo.toml | 8 +++---- .../poem/opentelemetry-jaeger/src/client.rs | 22 ++++++++----------- .../poem/opentelemetry-jaeger/src/server1.rs | 16 +++++++++----- .../poem/opentelemetry-jaeger/src/server2.rs | 16 +++++++++----- poem/CHANGELOG.md | 4 ++++ poem/Cargo.toml | 6 ++--- poem/src/middleware/opentelemetry_metrics.rs | 6 ++--- 8 files changed, 44 insertions(+), 36 deletions(-) diff --git a/examples/grpc/helloworld_compressed/Cargo.toml b/examples/grpc/helloworld_compressed/Cargo.toml index d1723b85f5..427916ffeb 100644 --- a/examples/grpc/helloworld_compressed/Cargo.toml +++ b/examples/grpc/helloworld_compressed/Cargo.toml @@ -19,5 +19,5 @@ tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } poem-grpc-build.workspace = true [[bin]] -name = "grpc-helloworld-client" +name = "grpc-helloworld-compressed-client" path = "src/client.rs" diff --git a/examples/poem/opentelemetry-jaeger/Cargo.toml b/examples/poem/opentelemetry-jaeger/Cargo.toml index 87a4c13039..e69553cb29 100644 --- a/examples/poem/opentelemetry-jaeger/Cargo.toml +++ b/examples/poem/opentelemetry-jaeger/Cargo.toml @@ -8,10 +8,10 @@ publish.workspace = true poem = { workspace = true, features = ["opentelemetry"] } tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } tracing-subscriber.workspace = true -opentelemetry = { version = "0.24.0", features = ["metrics"] } -opentelemetry_sdk = { version = "0.24.1", features = ["rt-tokio"] } -opentelemetry-http = { version = "0.13.0" } -opentelemetry-otlp = { version = "0.17.0", features = ["trace"] } +opentelemetry = { version = "0.27.0", features = ["metrics"] } +opentelemetry_sdk = { version = "0.27.0", features = ["rt-tokio"] } +opentelemetry-http = { version = "0.27.0" } +opentelemetry-otlp = { version = "0.27.0", features = ["trace"] } reqwest = "0.12" [[bin]] diff --git a/examples/poem/opentelemetry-jaeger/src/client.rs b/examples/poem/opentelemetry-jaeger/src/client.rs index ddde2c13e8..bf7b37eb7d 100644 --- a/examples/poem/opentelemetry-jaeger/src/client.rs +++ b/examples/poem/opentelemetry-jaeger/src/client.rs @@ -6,24 +6,20 @@ use opentelemetry::{ Context, KeyValue, }; use opentelemetry_http::HeaderInjector; -use opentelemetry_sdk::{ - propagation::TraceContextPropagator, - trace::{Config, TracerProvider}, - Resource, -}; +use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::TracerProvider}; use reqwest::{Client, Method, Url}; fn init_tracer() -> TracerProvider { global::set_text_map_propagator(TraceContextPropagator::new()); - opentelemetry_otlp::new_pipeline() - .tracing() - .with_trace_config( - Config::default() - .with_resource(Resource::new(vec![KeyValue::new("service.name", "poem")])), + opentelemetry_sdk::trace::TracerProvider::builder() + .with_batch_exporter( + opentelemetry_otlp::SpanExporter::builder() + .with_tonic() + .build() + .expect("Trace exporter should initialize."), + opentelemetry_sdk::runtime::Tokio, ) - .with_exporter(opentelemetry_otlp::new_exporter().tonic()) - .install_batch(opentelemetry_sdk::runtime::Tokio) - .expect("Trace Pipeline should initialize.") + .build() } #[tokio::main] diff --git a/examples/poem/opentelemetry-jaeger/src/server1.rs b/examples/poem/opentelemetry-jaeger/src/server1.rs index 35f390159c..f0dfdcec47 100644 --- a/examples/poem/opentelemetry-jaeger/src/server1.rs +++ b/examples/poem/opentelemetry-jaeger/src/server1.rs @@ -22,17 +22,21 @@ use reqwest::{Client, Url}; fn init_tracer() -> TracerProvider { global::set_text_map_propagator(TraceContextPropagator::new()); - opentelemetry_otlp::new_pipeline() - .tracing() - .with_trace_config( + opentelemetry_sdk::trace::TracerProvider::builder() + .with_config( Config::default().with_resource(Resource::new(vec![KeyValue::new( "service.name", "server1", )])), ) - .with_exporter(opentelemetry_otlp::new_exporter().tonic()) - .install_batch(opentelemetry_sdk::runtime::Tokio) - .expect("Trace Pipeline should initialize.") + .with_batch_exporter( + opentelemetry_otlp::SpanExporter::builder() + .with_tonic() + .build() + .expect("Trace exporter should initialize."), + opentelemetry_sdk::runtime::Tokio, + ) + .build() } #[handler] diff --git a/examples/poem/opentelemetry-jaeger/src/server2.rs b/examples/poem/opentelemetry-jaeger/src/server2.rs index 38ee118278..5b1e6ea66f 100644 --- a/examples/poem/opentelemetry-jaeger/src/server2.rs +++ b/examples/poem/opentelemetry-jaeger/src/server2.rs @@ -13,17 +13,21 @@ use poem::{ fn init_tracer() -> TracerProvider { global::set_text_map_propagator(TraceContextPropagator::new()); - opentelemetry_otlp::new_pipeline() - .tracing() - .with_trace_config( + opentelemetry_sdk::trace::TracerProvider::builder() + .with_config( Config::default().with_resource(Resource::new(vec![KeyValue::new( "service.name", "server2", )])), ) - .with_exporter(opentelemetry_otlp::new_exporter().tonic()) - .install_batch(opentelemetry_sdk::runtime::Tokio) - .expect("Trace Pipeline should initialize.") + .with_batch_exporter( + opentelemetry_otlp::SpanExporter::builder() + .with_tonic() + .build() + .expect("Trace exporter should initialize."), + opentelemetry_sdk::runtime::Tokio, + ) + .build() } #[handler] diff --git a/poem/CHANGELOG.md b/poem/CHANGELOG.md index e03cb7a4ae..b1d6e6571e 100644 --- a/poem/CHANGELOG.md +++ b/poem/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +# [3.1.5] 2024-11-25 + +- Bump `opentelemetry` to `0.27.0` + # [3.1.4] 2024-11-20 - Add `Server::http2_max_header_list_size` method to set the max size of received header frames. diff --git a/poem/Cargo.toml b/poem/Cargo.toml index ba51e6815e..6c88f62059 100644 --- a/poem/Cargo.toml +++ b/poem/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "poem" -version = "3.1.4" +version = "3.1.5" authors.workspace = true edition.workspace = true license.workspace = true @@ -130,11 +130,11 @@ libcookie = { package = "cookie", version = "0.18", features = [ "key-expansion", "secure", ], optional = true } -opentelemetry-http = { version = "0.13.0", optional = true } +opentelemetry-http = { version = "0.27.0", optional = true } opentelemetry-semantic-conventions = { version = "0.16.0", optional = true } opentelemetry-prometheus = { version = "0.17.0", optional = true } libprometheus = { package = "prometheus", version = "0.13.0", optional = true } -libopentelemetry = { package = "opentelemetry", version = "0.24.0", features = [ +libopentelemetry = { package = "opentelemetry", version = "0.27.0", features = [ "metrics", ], optional = true } libtempfile = { package = "tempfile", version = "3.2.0", optional = true } diff --git a/poem/src/middleware/opentelemetry_metrics.rs b/poem/src/middleware/opentelemetry_metrics.rs index fdb53062e5..456c09dee4 100644 --- a/poem/src/middleware/opentelemetry_metrics.rs +++ b/poem/src/middleware/opentelemetry_metrics.rs @@ -31,18 +31,18 @@ impl OpenTelemetryMetrics { request_count: meter .u64_counter("poem_requests_count") .with_description("total request count (since start of service)") - .init(), + .build(), error_count: meter .u64_counter("poem_errors_count") .with_description("failed request count (since start of service)") - .init(), + .build(), duration: meter .f64_histogram("poem_request_duration_ms") .with_unit("milliseconds") .with_description( "request duration histogram (in milliseconds, since start of service)", ) - .init(), + .build(), } } }