From c54b37b9ad4fbf9ab4194f8e5080eadf19a170b5 Mon Sep 17 00:00:00 2001 From: Scot Wilcox Date: Thu, 28 May 2020 11:26:21 -0400 Subject: [PATCH] Add example with tracing_opentelemetry and tonic --- Cargo.toml | 1 + examples/tracing-grpc/Cargo.toml | 27 +++++ examples/tracing-grpc/README.md | 24 +++++ examples/tracing-grpc/build.rs | 4 + examples/tracing-grpc/proto/helloworld.proto | 17 +++ examples/tracing-grpc/src/client.rs | 88 ++++++++++++++++ examples/tracing-grpc/src/server.rs | 103 +++++++++++++++++++ examples/tracing-grpc/trace.png | Bin 0 -> 70540 bytes 8 files changed, 264 insertions(+) create mode 100644 examples/tracing-grpc/Cargo.toml create mode 100644 examples/tracing-grpc/README.md create mode 100644 examples/tracing-grpc/build.rs create mode 100644 examples/tracing-grpc/proto/helloworld.proto create mode 100644 examples/tracing-grpc/src/client.rs create mode 100644 examples/tracing-grpc/src/server.rs create mode 100644 examples/tracing-grpc/trace.png diff --git a/Cargo.toml b/Cargo.toml index b9940d223b..090075029a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,6 +47,7 @@ members = [ "examples/grpc", "examples/http", "examples/zipkin", + "examples/tracing-grpc" ] [[bench]] diff --git a/examples/tracing-grpc/Cargo.toml b/examples/tracing-grpc/Cargo.toml new file mode 100644 index 0000000000..3fde059402 --- /dev/null +++ b/examples/tracing-grpc/Cargo.toml @@ -0,0 +1,27 @@ +[package] +name = "tracing-grpc" +version = "0.1.0" +edition = "2018" + +[[bin]] # Bin to run the gRPC server +name = "grpc-server" +path = "src/server.rs" + +[[bin]] # Bin to run the gRPC client +name = "grpc-client" +path = "src/client.rs" + +[dependencies] +http = "0.2" +tonic = "0.2" +prost = "0.6" +tokio = { version = "0.2", features = ["full"] } +opentelemetry = "0.5" +opentelemetry-jaeger ="0.4" +tracing = "0.1.14" +tracing-subscriber = "0.2.5" +tracing-opentelemetry = "0.4.0" +tracing-futures = "0.2.4" + +[build-dependencies] +tonic-build = "0.2" diff --git a/examples/tracing-grpc/README.md b/examples/tracing-grpc/README.md new file mode 100644 index 0000000000..33aba9982e --- /dev/null +++ b/examples/tracing-grpc/README.md @@ -0,0 +1,24 @@ +# GRPC example + +Example showing [Tonic] client and server interaction with OpenTelemetry context propagation. [tracing_opentelemetry](https://docs.rs/tracing-opentelemetry/0.4.0/tracing_opentelemetry/) is used to hook into the [tracing](https://github.com/tokio-rs/tracing) ecosystem, which enables drop-in replacements for [log](https://github.com/rust-lang/log) macros and an `#[instrument]` macro that will automatically add spans to your functions. + +[Tonic]: https://github.com/hyperium/tonic + +Examples +-------- + +```shell +# Run jaeger in background +$ docker run -d -p6831:6831/udp -p6832:6832/udp -p16686:16686 jaegertracing/all-in-one:latest + +# Run the server +$ cargo run --bin grpc-server + +# Now run the client to make a request to the server +$ cargo run --bin grpc-client + +# View spans (see the image below) +$ firefox http://localhost:16686/ +``` + +![Jaeger UI](trace.png) \ No newline at end of file diff --git a/examples/tracing-grpc/build.rs b/examples/tracing-grpc/build.rs new file mode 100644 index 0000000000..7c661fe65b --- /dev/null +++ b/examples/tracing-grpc/build.rs @@ -0,0 +1,4 @@ +fn main() -> Result<(), Box> { + tonic_build::compile_protos("proto/helloworld.proto")?; + Ok(()) +} diff --git a/examples/tracing-grpc/proto/helloworld.proto b/examples/tracing-grpc/proto/helloworld.proto new file mode 100644 index 0000000000..b0e60043b1 --- /dev/null +++ b/examples/tracing-grpc/proto/helloworld.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package helloworld; + +service Greeter { + // Our SayHello rpc accepts HelloRequests and returns HelloReplies + rpc SayHello (HelloRequest) returns (HelloReply); +} + +message HelloRequest { + // Request message contains the name to be greeted + string name = 1; +} + +message HelloReply { + // Reply contains the greeting message + string message = 1; +} diff --git a/examples/tracing-grpc/src/client.rs b/examples/tracing-grpc/src/client.rs new file mode 100644 index 0000000000..7c69ca3969 --- /dev/null +++ b/examples/tracing-grpc/src/client.rs @@ -0,0 +1,88 @@ +use hello_world::greeter_client::GreeterClient; +use hello_world::HelloRequest; +use opentelemetry::api::{HttpTextFormat, KeyValue, Provider, TraceContextPropagator}; +use opentelemetry::sdk::Sampler; +use opentelemetry::{api, sdk}; +use tracing::*; +use tracing_futures::Instrument; +use tracing_opentelemetry::OpenTelemetrySpanExt; +use tracing_subscriber::prelude::*; + +pub mod hello_world { + tonic::include_proto!("helloworld"); +} + +fn tracing_init() -> Result<(), Box> { + let builder = opentelemetry_jaeger::Exporter::builder() + .with_agent_endpoint("127.0.0.1:6831".parse().unwrap()); + + let exporter = builder + .with_process(opentelemetry_jaeger::Process { + service_name: "grpc-client".to_string(), + tags: vec![KeyValue::new("version", "0.1.0")], + }) + .init()?; + + // For the demonstration, use `Sampler::Always` sampler to sample all traces. In a production + // application, use `Sampler::Parent` or `Sampler::Probability` with a desired probability. + let provider = sdk::Provider::builder() + .with_simple_exporter(exporter) + .with_config(sdk::Config { + default_sampler: Box::new(Sampler::Always), + ..Default::default() + }) + .build(); + let tracer = provider.get_tracer("grpc-client"); + + let opentelemetry = tracing_opentelemetry::layer().with_tracer(tracer); + tracing_subscriber::registry() + .with(opentelemetry) + .try_init()?; + + Ok(()) +} + +struct TonicMetadataMapCarrier<'a>(&'a mut tonic::metadata::MetadataMap); +impl<'a> api::Carrier for TonicMetadataMapCarrier<'a> { + fn get(&self, key: &'static str) -> Option<&str> { + self.0.get(key).and_then(|metadata| metadata.to_str().ok()) + } + + fn set(&mut self, key: &'static str, value: String) { + if let Ok(key) = tonic::metadata::MetadataKey::from_bytes(key.to_lowercase().as_bytes()) { + self.0.insert( + key, + tonic::metadata::MetadataValue::from_str(&value).unwrap(), + ); + } + } +} + +#[instrument] +async fn greet() -> Result<(), Box> { + let mut client = GreeterClient::connect("http://[::1]:50051") + .instrument(info_span!("client connect")) + .await?; + let propagator = TraceContextPropagator::new(); + let cx = tracing::Span::current().context(); + + let mut request = tonic::Request::new(HelloRequest { + name: "Tonic".into(), + }); + propagator.inject_context(&cx, &mut TonicMetadataMapCarrier(request.metadata_mut())); + + let response = client + .say_hello(request) + .instrument(info_span!("say_hello")) + .await?; + info!("Response received: {:?}", response); + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + tracing_init()?; + greet().await?; + + Ok(()) +} diff --git a/examples/tracing-grpc/src/server.rs b/examples/tracing-grpc/src/server.rs new file mode 100644 index 0000000000..262abcb739 --- /dev/null +++ b/examples/tracing-grpc/src/server.rs @@ -0,0 +1,103 @@ +use hello_world::greeter_server::{Greeter, GreeterServer}; +use hello_world::{HelloReply, HelloRequest}; +use opentelemetry::api::{self, HttpTextFormat, KeyValue, Provider}; +use opentelemetry::sdk::{self, Sampler}; +use tonic::{transport::Server, Request, Response, Status}; +use tracing::*; +use tracing_opentelemetry::OpenTelemetrySpanExt; +use tracing_subscriber::prelude::*; + +pub mod hello_world { + tonic::include_proto!("helloworld"); // The string specified here must match the proto package name +} + +#[instrument] +fn expensive_fn(to_print: String) { + for _ in 0..5 { + std::thread::sleep(std::time::Duration::from_secs(1)); + info!("{}", to_print); + } +} + +#[derive(Debug, Default)] +pub struct MyGreeter {} + +#[tonic::async_trait] +impl Greeter for MyGreeter { + #[instrument] + async fn say_hello( + &self, + request: Request, // Accept request of type HelloRequest + ) -> Result, Status> { + let propagator = api::TraceContextPropagator::new(); + let parent_cx = propagator.extract(&HttpHeaderMapCarrier(request.metadata())); + let span = tracing::Span::current(); + span.set_parent(&parent_cx); + let name = request.into_inner().name; + expensive_fn(format!("Got name: {:?}", name)); + + // Return an instance of type HelloReply + let reply = hello_world::HelloReply { + message: format!("Hello {}!", name), // We must use .into_inner() as the fields of gRPC requests and responses are private + }; + + Ok(Response::new(reply)) // Send back our formatted greeting + } +} + +fn tracing_init() -> Result<(), Box> { + let builder = opentelemetry_jaeger::Exporter::builder() + .with_agent_endpoint("127.0.0.1:6831".parse().unwrap()); + + let exporter = builder + .with_process(opentelemetry_jaeger::Process { + service_name: "grpc-server".to_string(), + tags: vec![KeyValue::new("version", "0.1.0")], + }) + .init()?; + + // For the demonstration, use `Sampler::Always` sampler to sample all traces. In a production + // application, use `Sampler::Parent` or `Sampler::Probability` with a desired probability. + let provider = sdk::Provider::builder() + .with_simple_exporter(exporter) + .with_config(sdk::Config { + default_sampler: Box::new(Sampler::Always), + ..Default::default() + }) + .build(); + let tracer = provider.get_tracer("grpc-server"); + + let opentelemetry = tracing_opentelemetry::layer().with_tracer(tracer); + tracing_subscriber::registry() + .with(opentelemetry) + .try_init()?; + + Ok(()) +} + +struct HttpHeaderMapCarrier<'a>(&'a tonic::metadata::MetadataMap); +impl<'a> api::Carrier for HttpHeaderMapCarrier<'a> { + fn get(&self, key: &'static str) -> Option<&str> { + self.0 + .get(key.to_lowercase().as_str()) + .and_then(|value| value.to_str().ok()) + } + + fn set(&mut self, _key: &'static str, _value: String) { + unimplemented!() + } +} + +#[tokio::main] +async fn main() -> Result<(), Box> { + tracing_init()?; + let addr = "[::1]:50051".parse()?; + let greeter = MyGreeter::default(); + + Server::builder() + .add_service(GreeterServer::new(greeter)) + .serve(addr) + .await?; + + Ok(()) +} diff --git a/examples/tracing-grpc/trace.png b/examples/tracing-grpc/trace.png new file mode 100644 index 0000000000000000000000000000000000000000..f587ac8049bd2f47f7d4c67f6e1403e29a4aa687 GIT binary patch literal 70540 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 literal 0 HcmV?d00001