pub struct SessionMetrics {Show 14 fields
pub start: Option<Instant>,
pub start_wall: Option<SystemTime>,
pub service_time: Duration,
pub wait_time: Duration,
pub bin: usize,
pub bout: usize,
pub service_start: Option<Instant>,
pub wait_start: Instant,
pub backend_id: Option<String>,
pub backend_start: Option<Instant>,
pub backend_connected: Option<Instant>,
pub backend_stop: Option<Instant>,
pub backend_bin: usize,
pub backend_bout: usize,
}Fields§
§start: Option<Instant>date at which we started handling that request
start_wall: Option<SystemTime>wall-clock timestamp captured alongside start, for access-log
consumers that need an absolute start time (e.g. OTel span
reconstruction) without subtracting a monotonic duration from a
wall-clock end time — which mixes two unsynchronised clock sources.
service_time: Durationtime actually spent handling the request
wait_time: Durationtime spent waiting for its turn
bin: usizebytes received by the frontend
bout: usizebytes sent by the frontend
service_start: Option<Instant>date at which we started working on the request
wait_start: Instant§backend_id: Option<String>§backend_start: Option<Instant>§backend_connected: Option<Instant>§backend_stop: Option<Instant>§backend_bin: usize§backend_bout: usizeImplementations§
Source§impl SessionMetrics
impl SessionMetrics
pub fn new(wait_time: Option<Duration>) -> SessionMetrics
pub fn reset(&mut self)
pub fn service_start(&mut self)
pub fn service_stop(&mut self)
pub fn wait_start(&mut self)
pub fn service_time(&self) -> Duration
Sourcepub fn mark_request_start(&mut self) -> Instant
pub fn mark_request_start(&mut self) -> Instant
Arm both the monotonic and wall-clock start timestamps together.
This must be the single place that sets start + start_wall outside
of new(), so the two fields can never desynchronize.
Returns the monotonic instant so callers that need it (e.g.
service_start) can reuse it without a second syscall.
Sourcepub fn request_time(&self) -> Duration
pub fn request_time(&self) -> Duration
time elapsed since the beginning of the session
Sourcepub fn start_wall_ns(&self) -> Option<i128>
pub fn start_wall_ns(&self) -> Option<i128>
Wall-clock start time as nanoseconds since the Unix epoch, or None
if the monotonic start has not been set yet (post-reset(), pre-service_start()).
pub fn backend_start(&mut self)
pub fn backend_connected(&mut self)
pub fn backend_stop(&mut self)
pub fn backend_response_time(&self) -> Option<Duration>
pub fn backend_connection_time(&self) -> Option<Duration>
pub fn register_end_of_session(&self, context: &LogContext<'_>)
Trait Implementations§
Source§impl Clone for SessionMetrics
impl Clone for SessionMetrics
Source§fn clone(&self) -> SessionMetrics
fn clone(&self) -> SessionMetrics
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more