diff options
| author | tv <tv@krebsco.de> | 2026-11-05 02:14:44 +0100 |
|---|---|---|
| committer | tv <tv@krebsco.de> | 2026-11-05 02:14:44 +0100 |
| commit | d510e3a7b223b75b5187470432f909665b6cd967 (patch) | |
| tree | dce84899b17f8c962228843efdbfe95ccaed6a5c /src/api/dashboard/mod.rs | |
| parent | 3531e97f1b1d2894538e43b453dc0b5a925c3910 (diff) | |
dashboard: swarm-wide epoch shine
Diffstat (limited to 'src/api/dashboard/mod.rs')
| -rw-r--r-- | src/api/dashboard/mod.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/api/dashboard/mod.rs b/src/api/dashboard/mod.rs index 6682cbd..c82ce76 100644 --- a/src/api/dashboard/mod.rs +++ b/src/api/dashboard/mod.rs @@ -340,15 +340,22 @@ async fn build(state: &AppState, graph: &Graph, live: bool) -> JsonValue { .into_iter() .filter(|(_, age, _)| *age <= LINKS_KEPT_FOR) .collect(); + // With each its epoch: the page shows who entered a new one. + let epochs = state.links.epochs(); + let epoch_json = |epoch: Option<crate::transport::Epoch>| { + epoch.map(|epoch| json!(crate::document::replica::EpochRecord::from(epoch))) + }; let mut measured = Map::new(); measured.insert( local.to_owned(), - json!({ "secsAgo": 0, "links": links_json(&own) }), + json!({ "secsAgo": 0, "links": links_json(&own), + "epoch": epoch_json(Some(state.local_epoch())) }), ); for (member, age, member_links) in &replies { measured.insert( member.clone(), - json!({ "secsAgo": age.as_secs(), "links": links_json(member_links) }), + json!({ "secsAgo": age.as_secs(), "links": links_json(member_links), + "epoch": epoch_json(epochs.get(member).copied()) }), ); } let clocks = clocks::swarm( |
