aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2025-10-20 13:40:32 +0200
committerGitHub Enterprise <[email protected]>2025-10-20 13:40:32 +0200
commit839b84ad89179bdfa19fb963a55593867be344da (patch)
tree09dc266cadb85a79f1cc440cdf15b51079eba929
parentfix builds storage stats (#590) (diff)
downloadzen-839b84ad89179bdfa19fb963a55593867be344da.tar.xz
zen-839b84ad89179bdfa19fb963a55593867be344da.zip
Mr/dashboard stats summary tweak (#592)
* More robust dashboard stats summary * Updated changelog * Updated frontend zip archive
-rw-r--r--CHANGELOG.md1
-rw-r--r--src/zenserver/frontend/html.zipbin161191 -> 161397 bytes
-rw-r--r--src/zenserver/frontend/html/pages/start.js23
3 files changed, 15 insertions, 9 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 160f1fdca..54a9ff201 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@
- Improvement: Make cancelling of `zen builds` operations more responsive
- Improvement: `zen builds`now split large files that are compressed only into 64 MB chunks to avoiding very large files in Cloud Storage
- Improvement: `zen builds` now treats `.msixvc` files as non-compressable
+- Improvement: Self-hosted dashboard's summary of stats if more robust to future changes
- Bugfix: Add quotes around messages when using `--log-progress` with `zen builds` commands
- Bugfix: Fix ASSERT after running `zen workspace info` on a non-existing workspace
- Bugfix: Fixed issue where GC could start after shutdown of GC had been requested causing a race
diff --git a/src/zenserver/frontend/html.zip b/src/zenserver/frontend/html.zip
index bb3d61198..4d6766579 100644
--- a/src/zenserver/frontend/html.zip
+++ b/src/zenserver/frontend/html.zip
Binary files differ
diff --git a/src/zenserver/frontend/html/pages/start.js b/src/zenserver/frontend/html/pages/start.js
index d1c13ccc7..fd3778e0a 100644
--- a/src/zenserver/frontend/html/pages/start.js
+++ b/src/zenserver/frontend/html/pages/start.js
@@ -77,6 +77,12 @@ export class Page extends ZenPage
}
// stats
+ const safe_lookup = (obj, path, pretty=undefined) => {
+ const ret = path.split(".").reduce((a,b) => a && a[b], obj);
+ if (ret === undefined) return "-";
+ return pretty ? pretty(ret) : ret;
+ };
+
section = this.add_section("stats");
columns = [
"name",
@@ -90,15 +96,14 @@ export class Page extends ZenPage
for (var provider of (await providers)["providers"])
{
var stats = await new Fetcher().resource("stats", provider).json();
- var values = [""];
- try {
- values.push(stats.requests.count);
- const size_stat = (stats.store || stats.cache).size;
- values.push(Friendly.kib(size_stat.disk));
- values.push(Friendly.kib(size_stat.memory));
- values.push(stats.cid.size.total);
- }
- catch {}
+ var size_stat = (stats.store || stats.cache);
+ var values = [
+ "",
+ safe_lookup(stats, "requests.count"),
+ safe_lookup(size_stat, "size.disk", Friendly.kib),
+ safe_lookup(size_stat, "size.memory", Friendly.kib),
+ safe_lookup(stats, "cid.size.total"),
+ ];
row = stats_table.add_row(...values);
row.get_cell(0).tag().text(provider).on_click((x) => this.view_stat(x), provider);
}