From bb7f2c4cab52d3282797679b95e2f0504efd6217 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sun, 24 Dec 2023 23:52:45 -0600 Subject: [PATCH] tracing_opentelemetry --- server/Cargo.toml | 2 ++ server/src/main.rs | 55 ++++++++++++++++++++-------------------------- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/server/Cargo.toml b/server/Cargo.toml index 77b7b77..1b51129 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -23,6 +23,7 @@ opentelemetry = "0.21.0" opentelemetry-appender-tracing = "0.2.0" opentelemetry-otlp = { version = "0.14.0", features = ["logs", "http-proto", "reqwest-client"] } opentelemetry-semantic-conventions = "0.13.0" +opentelemetry-stdout = { version = "0.2.0", features = ["trace"] } opentelemetry_sdk = { version = "0.21.1", features = ["logs", "rt-tokio"] } parking_lot = { version = "0.11", features = ["serde"] } pathfinding = "4.6.0" @@ -42,6 +43,7 @@ tower-http = { version = "0.5.0", features = [ ] } tower-layer = "0.3.2" tracing = "0.1" +tracing-opentelemetry = "0.22.0" tracing-subscriber = { version = "0.3.18", features = ["registry", "std"] } typetag = "0.2.14" ucnlnav = { git = "https://github.com/ucnl/UCNLNav.git", version = "0.1.0" } diff --git a/server/src/main.rs b/server/src/main.rs index e87e798..576c9bb 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -21,14 +21,14 @@ use tokio::{sync::{ use turtle::{Turtle, TurtleCommander}; use serde::{Deserialize, Serialize}; use indoc::formatdoc; -use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge; -use tracing_subscriber::prelude::*; +use opentelemetry::global::shutdown_tracer_provider; +use opentelemetry::{ + global, + trace::{TraceContextExt, TraceError, Tracer}, + KeyValue, +}; use opentelemetry_otlp::WithExportConfig; -use opentelemetry::{global, KeyValue}; -use opentelemetry_sdk::logs as sdklogs; -use opentelemetry_sdk::metrics as sdkmetrics; -use opentelemetry_sdk::resource; -use opentelemetry_sdk::trace as sdktrace; +use opentelemetry_sdk::{runtime, trace as sdktrace, Resource}; use crate::blocks::Block; @@ -60,35 +60,29 @@ async fn main() -> Result<(), Error> { None => "save".into(), })?; - opentelemetry_otlp::new_pipeline() - .logging() - .with_log_config( - sdklogs::Config::default().with_resource(resource::Resource::new(vec![KeyValue::new( - opentelemetry_semantic_conventions::resource::SERVICE_NAME, - "avarus", - )])), - ) - .with_exporter( - opentelemetry_otlp::new_exporter() - .http() - .with_endpoint("http://localhost:4318"), - ) - .install_batch(opentelemetry_sdk::runtime::Tokio)?; - opentelemetry_otlp::new_pipeline() .tracing() .with_exporter( opentelemetry_otlp::new_exporter() - .http() - .with_endpoint("http://localhost:4318/v1/traces"), + .tonic() + .with_endpoint("http://localhost:4317"), ) - .install_batch(opentelemetry_sdk::runtime::Tokio)?; + .with_trace_config( + sdktrace::config().with_resource(Resource::new(vec![KeyValue::new( + "service.name", + "tracing-jaeger", + )])), + ) + .install_batch(runtime::Tokio)?; - let tracer = global::tracer("avarus/basic"); - let logger_provider = opentelemetry::global::logger_provider(); - let layer = OpenTelemetryTracingBridge::new(&logger_provider); - tracing_subscriber::registry().with(layer).init(); + let tracer = global::tracer("avarus"); + + let telemetry = tracing_opentelemetry::layer().with_tracer(tracer); + + let subscriber = Registry::default().with(telemetry); + + tracing::subscriber::set_global_default(subscriber); let (kill_send, kill_recv) = watch::channel(()); @@ -111,8 +105,7 @@ async fn main() -> Result<(), Error> { write_to_disk(&*state.read().await).await?; info!("written"); - global::shutdown_tracer_provider(); - global::shutdown_logger_provider(); + shutdown_tracer_provider(); state.write().await.kill.closed().await;