feat(tvix/tracing): http propagation for axum

It introduces a new accept_trace function for axum0.7 which can be used
to accept a header trace from a received request. This function can be
used for tonic 0.12 once that version is released, and the specific
`accept_trace` function within `tvix_tracing::propagate::tonic` can then
be removed.

This also integrates http propagation into the nar_bridge crate.

Change-Id: I46dcc797d494bb3977c2633753e7060d88d29129
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11925
Reviewed-by: Brian Olsen <me@griff.name>
Tested-by: BuildkiteCI
Reviewed-by: Simon Hauser <simon.hauser@helsinki-systems.de>
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Simon Hauser 2024-07-02 12:50:43 +02:00
parent fdc0cf0c94
commit 1515a970be
8 changed files with 207 additions and 11 deletions

22
tvix/Cargo.lock generated
View file

@ -2262,6 +2262,8 @@ dependencies = [
"tokio-util",
"tonic",
"tonic-build",
"tower",
"tower-http 0.5.2",
"tracing",
"tracing-subscriber",
"tvix-castore",
@ -4350,6 +4352,23 @@ dependencies = [
"tracing",
]
[[package]]
name = "tower-http"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e9cd434a998747dd2c4276bc96ee2e0c7a2eadf3cae88e52be55a05fa9053f5"
dependencies = [
"bitflags 2.4.2",
"bytes",
"http 1.1.0",
"http-body 1.0.0",
"http-body-util",
"pin-project-lite",
"tower-layer",
"tower-service",
"tracing",
]
[[package]]
name = "tower-layer"
version = "0.3.2"
@ -4755,7 +4774,7 @@ dependencies = [
"tonic-build",
"tonic-reflection",
"tower",
"tower-http",
"tower-http 0.4.4",
"tracing",
"tracing-indicatif",
"tvix-castore",
@ -4768,6 +4787,7 @@ dependencies = [
name = "tvix-tracing"
version = "0.1.0"
dependencies = [
"axum 0.7.5",
"http 0.2.11",
"indicatif",
"lazy_static",