diff options
author | Florian Klink <flokli@flokli.de> | 2024-06-14T11·10+0300 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2024-06-14T19·33+0000 |
commit | 6b6a34065e050417e8aafab8915a2cee270cc09d (patch) | |
tree | f30975995e430586439897109221e38f9e70b159 /tvix/tracing/src/lib.rs | |
parent | d25f047b9d12bab692e61f6bbdc4c8d673914f34 (diff) |
feat(tvix/tracing): add tracing-tracy support r/8275
This introduces another feature flag, "tracy" to the `tvix-tracing` crate. If enabled (not enabled by default), it'll add an additional layer emitting packets in a format that https://github.com/wolfpld/tracy can display. I had to be a bit tricky with the combinatorial complexity when adding this, but the resulting code still seems manageable. Change-Id: Ica824496728fa276ceae3f7a9754be0166e6558f Reviewed-on: https://cl.tvl.fyi/c/depot/+/10952 Tested-by: BuildkiteCI Reviewed-by: Simon Hauser <simon.hauser@helsinki-systems.de> Reviewed-by: flokli <flokli@flokli.de>
Diffstat (limited to 'tvix/tracing/src/lib.rs')
-rw-r--r-- | tvix/tracing/src/lib.rs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/tvix/tracing/src/lib.rs b/tvix/tracing/src/lib.rs index 36bd7cec10c0..08e100781073 100644 --- a/tvix/tracing/src/lib.rs +++ b/tvix/tracing/src/lib.rs @@ -13,6 +13,8 @@ use opentelemetry_sdk::{ trace::BatchConfigBuilder, Resource, }; +#[cfg(feature = "tracy")] +use tracing_tracy::TracyLayer; lazy_static! { pub static ref PB_PROGRESS_STYLE: ProgressStyle = ProgressStyle::with_template( @@ -173,12 +175,31 @@ impl TracingBuilder { let (tracer, tx) = gen_otlp_tracer(service_name.to_string()); // Create a tracing layer with the configured tracer let layer = tracing_opentelemetry::layer().with_tracer(tracer); - subscriber.with(Some(layer)).try_init()?; + + #[cfg(feature = "tracy")] + { + subscriber + .with(TracyLayer::default()) + .with(Some(layer)) + .try_init()?; + } + + #[cfg(not(feature = "tracy"))] + { + subscriber.with(Some(layer)).try_init()?; + } return Ok(TracingHandle { tx: Some(tx) }); } } + #[cfg(feature = "tracy")] + { + subscriber.with(TracyLayer::default()).try_init()?; + } + #[cfg(not(feature = "tracy"))] + { + subscriber.try_init()?; + } - subscriber.try_init()?; Ok(TracingHandle { tx: None }) } } |