Skip to content

Commit 7483755

Browse files
authored
impl(gax-internal): introduce RequestRecorder (#5130)
A request recorder is a task local variable used to collect the observability information about a request. Using a task local variable allows us to pass *and return* information about the request through multiple layers without having to change all the APIs. The name is supposed to evoke "flight recorder".
1 parent 46c971a commit 7483755

3 files changed

Lines changed: 500 additions & 1 deletion

File tree

src/gax-internal/src/observability.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ pub mod grpc_tracing;
4242
mod client_signals;
4343

4444
#[cfg(google_cloud_unstable_tracing)]
45-
pub use client_signals::{ClientSignalsExt, DurationMetric, RequestStart};
45+
pub use client_signals::{
46+
ClientRequestAttributes, ClientSignalsExt, DurationMetric, RequestRecorder, RequestStart,
47+
};
4648

4749
#[cfg(google_cloud_unstable_tracing)]
4850
mod client_tracing;

src/gax-internal/src/observability/client_signals.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,13 @@
1414

1515
mod client_signals_ext;
1616
mod duration_metric;
17+
mod recorder;
1718
mod request_start;
1819
mod with_client_signals;
1920

2021
pub use client_signals_ext::ClientSignalsExt;
2122
pub use duration_metric::DurationMetric;
23+
pub use recorder::{ClientRequestAttributes, RequestRecorder};
2224
pub use request_start::RequestStart;
2325
pub use with_client_signals::WithClientSignals;
2426

0 commit comments

Comments
 (0)