telemetry ftw
This commit is contained in:
@@ -4,7 +4,7 @@ use std::str::FromStr;
|
||||
|
||||
use clap::{Parser, Subcommand};
|
||||
|
||||
use packager::{auth, models, routing, sqlite, AppState, ClientState, Error};
|
||||
use packager::{auth, models, routing, sqlite, telemetry, AppState, ClientState, Error};
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
#[command(author, version, about, long_about = None)]
|
||||
@@ -73,49 +73,9 @@ impl From<Error> for MainResult {
|
||||
}
|
||||
}
|
||||
|
||||
fn init_tracing() {
|
||||
use std::io::stdout;
|
||||
use tracing::Level;
|
||||
use tracing_subscriber::{
|
||||
filter::Targets,
|
||||
fmt::{format::Format, Layer},
|
||||
prelude::*,
|
||||
registry::Registry,
|
||||
};
|
||||
// default is the Full format, there is no way to specify this, but it can be
|
||||
// overridden via builder methods
|
||||
let console_format = Format::default()
|
||||
.with_ansi(true)
|
||||
.with_target(true)
|
||||
.with_level(true)
|
||||
.json();
|
||||
|
||||
let console_layer = Layer::default()
|
||||
.event_format(console_format)
|
||||
.with_writer(stdout);
|
||||
|
||||
let console_level = Level::DEBUG;
|
||||
|
||||
let console_filter = Targets::new().with_target(env!("CARGO_PKG_NAME"), console_level);
|
||||
|
||||
let console_layer = if true {
|
||||
console_layer.boxed()
|
||||
} else {
|
||||
console_layer.with_filter(console_filter).boxed()
|
||||
};
|
||||
|
||||
let registry = Registry::default()
|
||||
// just an example, you can actuall pass Options here for layers that might be
|
||||
// set/unset at runtime
|
||||
.with(Some(console_layer))
|
||||
.with(None::<Layer<_>>);
|
||||
|
||||
tracing::subscriber::set_global_default(registry).unwrap();
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> MainResult {
|
||||
init_tracing();
|
||||
telemetry::init_tracing();
|
||||
let args = Args::parse();
|
||||
match args.command {
|
||||
Command::Serve(serve_args) => {
|
||||
@@ -140,6 +100,8 @@ async fn main() -> MainResult {
|
||||
|
||||
// build our application with a route
|
||||
let app = routing::router(state);
|
||||
let app = telemetry::init_request_tracing(app);
|
||||
|
||||
let addr = SocketAddr::from((
|
||||
IpAddr::from_str(&serve_args.bind)
|
||||
.map_err(|error| {
|
||||
|
||||
Reference in New Issue
Block a user