tracing_opentelemetry
This commit is contained in:
parent
645744e08c
commit
bb7f2c4cab
2 changed files with 26 additions and 31 deletions
|
@ -23,6 +23,7 @@ opentelemetry = "0.21.0"
|
||||||
opentelemetry-appender-tracing = "0.2.0"
|
opentelemetry-appender-tracing = "0.2.0"
|
||||||
opentelemetry-otlp = { version = "0.14.0", features = ["logs", "http-proto", "reqwest-client"] }
|
opentelemetry-otlp = { version = "0.14.0", features = ["logs", "http-proto", "reqwest-client"] }
|
||||||
opentelemetry-semantic-conventions = "0.13.0"
|
opentelemetry-semantic-conventions = "0.13.0"
|
||||||
|
opentelemetry-stdout = { version = "0.2.0", features = ["trace"] }
|
||||||
opentelemetry_sdk = { version = "0.21.1", features = ["logs", "rt-tokio"] }
|
opentelemetry_sdk = { version = "0.21.1", features = ["logs", "rt-tokio"] }
|
||||||
parking_lot = { version = "0.11", features = ["serde"] }
|
parking_lot = { version = "0.11", features = ["serde"] }
|
||||||
pathfinding = "4.6.0"
|
pathfinding = "4.6.0"
|
||||||
|
@ -42,6 +43,7 @@ tower-http = { version = "0.5.0", features = [
|
||||||
] }
|
] }
|
||||||
tower-layer = "0.3.2"
|
tower-layer = "0.3.2"
|
||||||
tracing = "0.1"
|
tracing = "0.1"
|
||||||
|
tracing-opentelemetry = "0.22.0"
|
||||||
tracing-subscriber = { version = "0.3.18", features = ["registry", "std"] }
|
tracing-subscriber = { version = "0.3.18", features = ["registry", "std"] }
|
||||||
typetag = "0.2.14"
|
typetag = "0.2.14"
|
||||||
ucnlnav = { git = "https://github.com/ucnl/UCNLNav.git", version = "0.1.0" }
|
ucnlnav = { git = "https://github.com/ucnl/UCNLNav.git", version = "0.1.0" }
|
||||||
|
|
|
@ -21,14 +21,14 @@ use tokio::{sync::{
|
||||||
use turtle::{Turtle, TurtleCommander};
|
use turtle::{Turtle, TurtleCommander};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use indoc::formatdoc;
|
use indoc::formatdoc;
|
||||||
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
|
use opentelemetry::global::shutdown_tracer_provider;
|
||||||
use tracing_subscriber::prelude::*;
|
use opentelemetry::{
|
||||||
|
global,
|
||||||
|
trace::{TraceContextExt, TraceError, Tracer},
|
||||||
|
KeyValue,
|
||||||
|
};
|
||||||
use opentelemetry_otlp::WithExportConfig;
|
use opentelemetry_otlp::WithExportConfig;
|
||||||
use opentelemetry::{global, KeyValue};
|
use opentelemetry_sdk::{runtime, trace as sdktrace, Resource};
|
||||||
use opentelemetry_sdk::logs as sdklogs;
|
|
||||||
use opentelemetry_sdk::metrics as sdkmetrics;
|
|
||||||
use opentelemetry_sdk::resource;
|
|
||||||
use opentelemetry_sdk::trace as sdktrace;
|
|
||||||
|
|
||||||
use crate::blocks::Block;
|
use crate::blocks::Block;
|
||||||
|
|
||||||
|
@ -60,35 +60,29 @@ async fn main() -> Result<(), Error> {
|
||||||
None => "save".into(),
|
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()
|
opentelemetry_otlp::new_pipeline()
|
||||||
.tracing()
|
.tracing()
|
||||||
.with_exporter(
|
.with_exporter(
|
||||||
opentelemetry_otlp::new_exporter()
|
opentelemetry_otlp::new_exporter()
|
||||||
.http()
|
.tonic()
|
||||||
.with_endpoint("http://localhost:4318/v1/traces"),
|
.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 tracer = global::tracer("avarus");
|
||||||
let layer = OpenTelemetryTracingBridge::new(&logger_provider);
|
|
||||||
tracing_subscriber::registry().with(layer).init();
|
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(());
|
let (kill_send, kill_recv) = watch::channel(());
|
||||||
|
|
||||||
|
@ -111,8 +105,7 @@ async fn main() -> Result<(), Error> {
|
||||||
write_to_disk(&*state.read().await).await?;
|
write_to_disk(&*state.read().await).await?;
|
||||||
info!("written");
|
info!("written");
|
||||||
|
|
||||||
global::shutdown_tracer_provider();
|
shutdown_tracer_provider();
|
||||||
global::shutdown_logger_provider();
|
|
||||||
|
|
||||||
state.write().await.kill.closed().await;
|
state.write().await.kill.closed().await;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue