feat(phase-a): surface uptime, dedup efficiency, per-type cache rates + FQ qdisc
Backend (rpc.rs): - DashboardStatusReply gains daemon_started_unix (proxy for daemon restart time) - CacheSummary gains per-type breakdown: get_ref_hits/misses, get_tag_hits/misses, has_chunk_hits/misses — dedup efficiency is now visible in the API response Frontend (api.ts, NodeCard.tsx): - NodeStatusV2 type carries daemon_started_unix and expanded CacheSummary - fmtUptime() helper renders "up 3d 14h" from a unix timestamp - NodeCard now shows: uptime, available disk bytes in the bar label, dedup efficiency % (has_chunk hit rate), timer last-result text for failed timers Infrastructure (T3.1): - FQ qdisc applied on all 3 nodes (Architect enp11s0+enp5s0f1, Tank same, Morpheus eno1) for precise QUIC packet pacing per QUIC Steps paper - GSO already on on Architect and Tank 10G NICs Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
2f7eabf034
commit
a3efdbfc04
@@ -181,6 +181,9 @@ pub struct NodeStatusV2 {
|
||||
pub cache: Option<CacheSummary>,
|
||||
#[serde(default)]
|
||||
pub timers: Vec<TimerStatus>,
|
||||
/// Unix timestamp (seconds) when the peer's daemon last started.
|
||||
#[serde(default)]
|
||||
pub daemon_started_unix: Option<u64>,
|
||||
/// `true` when the aggregator successfully talked to the peer;
|
||||
/// `false` when the RPC failed. Frontend uses this to badge the
|
||||
/// card as offline.
|
||||
@@ -207,6 +210,7 @@ impl NodeStatusV2 {
|
||||
mount: r.mount,
|
||||
cache: r.cache,
|
||||
timers: r.timers,
|
||||
daemon_started_unix: r.daemon_started_unix,
|
||||
online: true,
|
||||
error: None,
|
||||
};
|
||||
@@ -232,6 +236,7 @@ impl NodeStatusV2 {
|
||||
mount: None,
|
||||
cache: None,
|
||||
timers: Vec::new(),
|
||||
daemon_started_unix: None,
|
||||
online: false,
|
||||
error: Some(e),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user