lobe_core/models/report.rs
1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
4pub struct TimingReport {
5 pub dns_ms: u64,
6 pub tcp_ms: u64,
7 pub tls_ms: u64,
8 pub ttfb_ms: u64,
9 #[serde(default)]
10 pub download_ms: u64,
11 pub total_ms: u64,
12 /// Latency Lobe's own proxy added on top of the upstream round trip —
13 /// request parsing plus writing the response back to the client — i.e.
14 /// how much the proxy itself skews the total the client sees. The phase
15 /// timings above are measured on the proxy→upstream connection and are
16 /// unaffected by this. Sub-millisecond in practice, so stored in
17 /// microseconds. 0 on the synthetic probe path and on failed requests.
18 #[serde(default)]
19 pub proxy_overhead_us: u64,
20}