From b1143360b44897daee613c22ab01669210e87379 Mon Sep 17 00:00:00 2001 From: Bulat Kurbanov Date: Mon, 6 May 2024 23:46:58 +0200 Subject: [PATCH] Fix --- Cargo.lock | 1 + Cargo.toml | 1 + src/main.rs | 18 +++++++++++++----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fdd1818..2bb22d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -333,6 +333,7 @@ dependencies = [ "axum-prometheus", "futures-util", "sentry", + "sentry-tracing", "tokio", "tokio-cron-scheduler", "tokio-util", diff --git a/Cargo.toml b/Cargo.toml index eef6730..af3b024 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ axum-prometheus = "0.6.1" tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"]} +sentry-tracing = "0.32.3" tower-http = { version = "0.5.2", features = ["trace"] } async-tempfile = "0.5.0" diff --git a/src/main.rs b/src/main.rs index d0e9467..7eaf981 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ use axum::{ use axum_prometheus::PrometheusMetricLayer; use futures_util::StreamExt; use sentry::{integrations::debug_images::DebugImagesIntegration, types::Dsn, ClientOptions}; +use sentry_tracing::EventFilter; use std::{io::SeekFrom, net::SocketAddr, str::FromStr}; use tokio::{ fs::{read_dir, remove_dir, remove_file, File}, @@ -21,6 +22,7 @@ use tokio_cron_scheduler::{Job, JobScheduler}; use tokio_util::io::ReaderStream; use tower_http::trace::{self, TraceLayer}; use tracing::{info, log, Level}; +use tracing_subscriber::{filter, layer::SubscriberExt, util::SubscriberInitExt}; async fn remove_temp_files() -> Result<(), Box> { let mut dir = read_dir("/tmp/").await?; @@ -205,11 +207,6 @@ async fn start_app() { #[tokio::main] async fn main() { - tracing_subscriber::fmt() - .with_target(false) - .compact() - .init(); - let options = ClientOptions { dsn: Some( Dsn::from_str( @@ -225,5 +222,16 @@ async fn main() { let _guard = sentry::init(options); + let sentry_layer = sentry_tracing::layer().event_filter(|md| match md.level() { + &tracing::Level::ERROR => EventFilter::Event, + _ => EventFilter::Ignore, + }); + + tracing_subscriber::registry() + .with(tracing_subscriber::fmt::layer().with_target(false)) + .with(filter::LevelFilter::INFO) + .with(sentry_layer) + .init(); + tokio::join![cron_jobs(), start_app()]; }