1
Fork 0

tracing_opentelemetry

This commit is contained in:
Andy Killorin 2023-12-24 23:52:45 -06:00
parent 645744e08c
commit bb7f2c4cab
Signed by: ank
GPG key ID: B6241CA3B552BCA4
2 changed files with 26 additions and 31 deletions

View file

@ -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" }

View file

@ -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;