TRACING IN MY WEB BROWSER
This commit is contained in:
parent
b2c41261de
commit
95fcabc40e
4 changed files with 26 additions and 23 deletions
|
@ -19,13 +19,6 @@ hyper = "1.0.1"
|
||||||
hyper-util = "0.1.1"
|
hyper-util = "0.1.1"
|
||||||
indoc = "2.0.4"
|
indoc = "2.0.4"
|
||||||
nalgebra = { version = "0.32.3", features = ["serde-serialize"] }
|
nalgebra = { version = "0.32.3", features = ["serde-serialize"] }
|
||||||
opentelemetry = "0.21.0"
|
|
||||||
opentelemetry-appender-tracing = "0.2.0"
|
|
||||||
opentelemetry-jaeger = "0.20.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"] }
|
parking_lot = { version = "0.11", features = ["serde"] }
|
||||||
pathfinding = "4.6.0"
|
pathfinding = "4.6.0"
|
||||||
rstar = { version = "0.11.0", features = ["serde"] }
|
rstar = { version = "0.11.0", features = ["serde"] }
|
||||||
|
@ -33,7 +26,7 @@ rustmatica = "0.1.1"
|
||||||
serde = { version = "1.0.193", features = ["rc", "derive"] }
|
serde = { version = "1.0.193", features = ["rc", "derive"] }
|
||||||
serde_json = "1.0.108"
|
serde_json = "1.0.108"
|
||||||
time = { version = "0.3.31", features = ["serde"] }
|
time = { version = "0.3.31", features = ["serde"] }
|
||||||
tokio = { version = "1.0", features = ["full", "tracing"] }
|
tokio = { version = "1", features = ["full", "tracing"] }
|
||||||
tower = { version = "0.4", features = ["util", "timeout", "load-shed", "limit"] }
|
tower = { version = "0.4", features = ["util", "timeout", "load-shed", "limit"] }
|
||||||
tower-http = { version = "0.5.0", features = [
|
tower-http = { version = "0.5.0", features = [
|
||||||
"add-extension",
|
"add-extension",
|
||||||
|
@ -44,7 +37,10 @@ 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"] }
|
|
||||||
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" }
|
||||||
|
tracing-subscriber = "0.3"
|
||||||
|
console-subscriber = "0.1.5"
|
||||||
|
opentelemetry = "0.17.0"
|
||||||
|
tracing-opentelemetry = "0.17.2"
|
||||||
|
opentelemetry-jaeger = "0.16.0"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#![feature(iter_map_windows, iter_collect_into)]
|
#![feature(iter_map_windows, iter_collect_into)]
|
||||||
|
|
||||||
use std::{collections::VecDeque, io::ErrorKind, sync::Arc, env::args, path};
|
use std::{collections::VecDeque, io::ErrorKind, sync::Arc, env::args, path, borrow::BorrowMut};
|
||||||
|
|
||||||
use anyhow::{Error, Ok};
|
use anyhow::{Error, Ok};
|
||||||
use axum::{
|
use axum::{
|
||||||
|
@ -10,6 +10,8 @@ use axum::{
|
||||||
};
|
};
|
||||||
use blocks::{World, Position, };
|
use blocks::{World, Position, };
|
||||||
use depot::Depots;
|
use depot::Depots;
|
||||||
|
use opentelemetry::global;
|
||||||
|
use tower_http::trace::TraceLayer;
|
||||||
use tracing::{info, span};
|
use tracing::{info, span};
|
||||||
use rstar::RTree;
|
use rstar::RTree;
|
||||||
|
|
||||||
|
@ -18,15 +20,10 @@ use tasks::Scheduler;
|
||||||
use tokio::{sync::{
|
use tokio::{sync::{
|
||||||
RwLock, mpsc, OnceCell, Mutex, watch
|
RwLock, mpsc, OnceCell, Mutex, watch
|
||||||
}, fs, time::Instant, runtime::Runtime};
|
}, fs, time::Instant, runtime::Runtime};
|
||||||
|
use tracing_subscriber::{fmt::format::FmtSpan, layer::SubscriberExt, util::SubscriberInitExt};
|
||||||
use turtle::{Turtle, TurtleCommander};
|
use turtle::{Turtle, TurtleCommander};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use indoc::formatdoc;
|
use indoc::formatdoc;
|
||||||
use opentelemetry::trace::TracerProvider as _;
|
|
||||||
use opentelemetry_sdk::{trace::TracerProvider, runtime::Tokio};
|
|
||||||
use opentelemetry_stdout as stdout;
|
|
||||||
use tracing_subscriber::prelude::*;
|
|
||||||
use tracing_subscriber::layer::SubscriberExt;
|
|
||||||
use tracing_subscriber::Registry;
|
|
||||||
|
|
||||||
use crate::blocks::Block;
|
use crate::blocks::Block;
|
||||||
|
|
||||||
|
@ -58,18 +55,26 @@ async fn main() -> Result<(), Error> {
|
||||||
None => "save".into(),
|
None => "save".into(),
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
let tracer = opentelemetry_jaeger::new_agent_pipeline()
|
global::set_text_map_propagator(opentelemetry_jaeger::Propagator::new());
|
||||||
|
|
||||||
|
let tracer = opentelemetry_jaeger::new_pipeline()
|
||||||
.with_service_name("avarus")
|
.with_service_name("avarus")
|
||||||
.install_simple()?;
|
.install_simple()?;
|
||||||
|
|
||||||
let opentelemetry = tracing_opentelemetry::layer().with_tracer(tracer);
|
let opentelemetry = tracing_opentelemetry::layer().with_tracer(tracer);
|
||||||
|
|
||||||
|
let subscriber = tracing_subscriber::fmt::layer()
|
||||||
|
.compact()
|
||||||
|
.with_file(false)
|
||||||
|
.with_target(true)
|
||||||
|
.with_span_events(FmtSpan::ENTER);
|
||||||
|
|
||||||
tracing_subscriber::registry()
|
tracing_subscriber::registry()
|
||||||
.with(opentelemetry)
|
.with(opentelemetry)
|
||||||
|
.with(subscriber)
|
||||||
.try_init()?;
|
.try_init()?;
|
||||||
|
|
||||||
let root = span!(tracing::Level::INFO, "starting");
|
info!("starting");
|
||||||
let enter = root.enter();
|
|
||||||
|
|
||||||
info!("started");
|
|
||||||
|
|
||||||
let (kill_send, kill_recv) = watch::channel(());
|
let (kill_send, kill_recv) = watch::channel(());
|
||||||
|
|
||||||
|
@ -81,6 +86,7 @@ async fn main() -> Result<(), Error> {
|
||||||
//.route("/turtle/:id/placeUp", get(place_up))
|
//.route("/turtle/:id/placeUp", get(place_up))
|
||||||
.route("/flush", get(flush))
|
.route("/flush", get(flush))
|
||||||
.nest("/turtle", turtle_api::turtle_api())
|
.nest("/turtle", turtle_api::turtle_api())
|
||||||
|
.layer(TraceLayer::new_for_http())
|
||||||
.with_state(state.clone());
|
.with_state(state.clone());
|
||||||
|
|
||||||
let listener = tokio::net::TcpListener::bind(("0.0.0.0", *PORT.get().unwrap()))
|
let listener = tokio::net::TcpListener::bind(("0.0.0.0", *PORT.get().unwrap()))
|
||||||
|
|
|
@ -231,7 +231,7 @@ impl TurtleCommander {
|
||||||
self.depots.dock(self.clone()).await
|
self.depots.dock(self.clone()).await
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tracing::instrument]
|
#[tracing::instrument(skip(self))]
|
||||||
pub async fn goto(&self, pos: Position) -> Option<()> {
|
pub async fn goto(&self, pos: Position) -> Option<()> {
|
||||||
let mut recent = self.pos().await;
|
let mut recent = self.pos().await;
|
||||||
let world = self.world.clone();
|
let world = self.world.clone();
|
||||||
|
|
|
@ -169,6 +169,7 @@ pub(crate) async fn fell(
|
||||||
"ACK"
|
"ACK"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[tracing::instrument(skip(state))]
|
||||||
pub(crate) async fn set_goal(
|
pub(crate) async fn set_goal(
|
||||||
Path(id): Path<u32>,
|
Path(id): Path<u32>,
|
||||||
State(state): State<SharedControl>,
|
State(state): State<SharedControl>,
|
||||||
|
|
Loading…
Reference in a new issue