diff --git a/src/config/mod.rs b/src/config/mod.rs index c842b77068f447256bea61223da8720f1388d9ae..da14c184b4c22dcfbca6adeea67bf61f2d19c6be 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -178,6 +178,9 @@ pub(crate) struct Config { #[serde(default = "default_tracing_flame_filter")] #[cfg(feature = "perf_measurements")] pub(crate) tracing_flame_filter: String, + #[serde(default = "default_tracing_flame_output_path")] + #[cfg(feature = "perf_measurements")] + pub(crate) tracing_flame_output_path: String, #[serde(default)] pub(crate) proxy: ProxyConfig, pub(crate) jwt_secret: Option<String>, @@ -940,6 +943,9 @@ fn default_max_fetch_prev_events() -> u16 { 100_u16 } #[cfg(feature = "perf_measurements")] fn default_tracing_flame_filter() -> String { "trace,h2=off".to_owned() } +#[cfg(feature = "perf_measurements")] +fn default_tracing_flame_output_path() -> String { "./tracing.folded".to_owned() } + fn default_trusted_servers() -> Vec<OwnedServerName> { vec![OwnedServerName::try_from("matrix.org").unwrap()] } fn default_log() -> String { diff --git a/src/main.rs b/src/main.rs index 128766eaf96f27331085e9dda2aaf1c3ac8a81d2..31f04c10b87d4cace7f4a7ffa8950af61540356c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -630,7 +630,13 @@ fn init_tracing(config: &Config) -> (LogLevelReloadHandles, TracingFlameGuard) { Err(e) => panic!("tracing_flame_filter config value is invalid: {e}"), }; - let (flame_layer, flame_guard) = tracing_flame::FlameLayer::with_file("./tracing.folded").unwrap(); + let (flame_layer, flame_guard) = + match tracing_flame::FlameLayer::with_file(&config.tracing_flame_output_path) { + Ok(ok) => ok, + Err(e) => { + panic!("failed to initialize tracing-flame: {e}"); + }, + }; let flame_layer = flame_layer .with_empty_samples(false) .with_filter(flame_filter);