Admin: freier Speicher pro Docker-Host anzeigen
Die Karte Docker-Hosts zeigt den freien Speicher unter /var/lib/docker, per SSH mit df gemessen und eine Minute zwischengespeichert. Unter 20 GB wird die Zeile rot.
This commit is contained in:
1 parent
844da4713d
commit
1243e9c852
6 files changed
+66
-4
No files matched your search
@@ -161,15 +161,18 @@ export class ServerManager {
|
||||
}
|
||||
|
||||
/** Auslastung der Docker-Hosts mit den Matches, die dort laufen. Leer, wenn der Adapter keine Hosts kennt. */
|
||||
hostUsage() {
|
||||
async hostUsage() {
|
||||
if (!this.adapter.hostStats) return [];
|
||||
const rows = this.db.prepare(`
|
||||
SELECT s.host, s.status, m.id AS match_id, m.team_a_name, m.team_b_name
|
||||
FROM servers s JOIN matches m ON m.id = s.match_id
|
||||
WHERE s.status != 'stopped' AND s.host IS NOT NULL
|
||||
`).all();
|
||||
return this.adapter.hostStats().map((h) => ({
|
||||
const stats = this.adapter.hostStats();
|
||||
const disks = await Promise.all(stats.map((h) => this.adapter.diskUsage?.(h.name) ?? null));
|
||||
return stats.map((h, i) => ({
|
||||
...h,
|
||||
disk: disks[i],
|
||||
matches: rows
|
||||
.filter((r) => r.host === h.publicHost)
|
||||
.map((r) => ({ id: r.match_id, title: `${r.team_a_name} vs. ${r.team_b_name}`, status: r.status })),
|
||||
|
||||
Reference in new issue
Block a user