Hostname aus /etc/hostname des Hosts statt Container-ID, veth-Schnittstellen ausblenden
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f89ef84aa4
commit
21fbb4ad14
2 files changed
+11
-3
No files matched your search
@@ -146,8 +146,9 @@ Hinweise zu den Feldern:
|
|||||||
- `memory.usedBytes` ist der tatsächlich belegte Speicher, also ohne Cache, der jederzeit freigegeben werden
|
- `memory.usedBytes` ist der tatsächlich belegte Speicher, also ohne Cache, der jederzeit freigegeben werden
|
||||||
kann. Das entspricht der Spalte „used“ von `free`.
|
kann. Das entspricht der Spalte „used“ von `free`.
|
||||||
- `disks[].percent` wird wie bei `df` berechnet. `freeBytes` ist der für Benutzer verfügbare Platz.
|
- `disks[].percent` wird wie bei `df` berechnet. `freeBytes` ist der für Benutzer verfügbare Platz.
|
||||||
- `network.rxBytesPerSec`/`txBytesPerSec` summiert nur echte Schnittstellen. Docker-Bridges und `veth*`
|
- `network.rxBytesPerSec`/`txBytesPerSec` summiert nur echte Schnittstellen. Docker-Bridges (`docker0`, `br-*`)
|
||||||
stehen mit `"virtual": true` in der Liste, werden aber nicht mitgezählt, sonst zählt Container-Verkehr doppelt.
|
stehen mit `"virtual": true` in der Liste, werden aber nicht mitgezählt, sonst zählt Container-Verkehr doppelt.
|
||||||
|
Die `veth*`-Schnittstellen der einzelnen Container werden gar nicht gelistet.
|
||||||
- `temperatures`: welche Sensoren es gibt, hängt von der Hardware ab. Die Liste kann leer sein (z. B. bei VMs)
|
- `temperatures`: welche Sensoren es gibt, hängt von der Hardware ab. Die Liste kann leer sein (z. B. bei VMs)
|
||||||
und `criticalCelsius` kann `null` sein.
|
und `criticalCelsius` kann `null` sein.
|
||||||
- `cpu.mhz` ist der Durchschnitt aller Threads und kann bei VMs `null` sein.
|
- `cpu.mhz` ist der Durchschnitt aller Threads und kann bei VMs `null` sein.
|
||||||
|
|||||||
+9
-2
@@ -205,6 +205,12 @@ def _cpu_mhz() -> float | None:
|
|||||||
return round(sum(freqs) / len(freqs)) if freqs else None
|
return round(sum(freqs) / len(freqs)) if freqs else None
|
||||||
|
|
||||||
|
|
||||||
|
def _hostname() -> str | None:
|
||||||
|
# /proc/sys/kernel/hostname liefert im Container dessen ID (eigener UTS-Namespace),
|
||||||
|
# daher zuerst die Datei des Hosts
|
||||||
|
return _read_or(_host_path("/etc/hostname")) or _read_or(f"{HOST_PROC}/sys/kernel/hostname")
|
||||||
|
|
||||||
|
|
||||||
def _os_name() -> str | None:
|
def _os_name() -> str | None:
|
||||||
for path in (_host_path("/etc/os-release"), _host_path("/usr/lib/os-release")):
|
for path in (_host_path("/etc/os-release"), _host_path("/usr/lib/os-release")):
|
||||||
text = _read_or(path)
|
text = _read_or(path)
|
||||||
@@ -242,7 +248,8 @@ def snapshot(prev: dict, cur: dict, interval: int) -> dict:
|
|||||||
|
|
||||||
net, rx_sum, tx_sum = [], 0, 0
|
net, rx_sum, tx_sum = [], 0, 0
|
||||||
for name, (rx, tx) in sorted(cur["net"].items()):
|
for name, (rx, tx) in sorted(cur["net"].items()):
|
||||||
if name == "lo":
|
# veth*: eine pro Container mit Zufallsnamen – nur Rauschen in der Liste
|
||||||
|
if name == "lo" or name.startswith("veth"):
|
||||||
continue
|
continue
|
||||||
p_rx, p_tx = prev["net"].get(name, (rx, tx))
|
p_rx, p_tx = prev["net"].get(name, (rx, tx))
|
||||||
rx_rate, tx_rate = _rate(rx, p_rx, seconds), _rate(tx, p_tx, seconds)
|
rx_rate, tx_rate = _rate(rx, p_rx, seconds), _rate(tx, p_tx, seconds)
|
||||||
@@ -268,7 +275,7 @@ def snapshot(prev: dict, cur: dict, interval: int) -> dict:
|
|||||||
"timestamp": datetime.now().astimezone().isoformat(timespec="seconds"),
|
"timestamp": datetime.now().astimezone().isoformat(timespec="seconds"),
|
||||||
"intervalSeconds": interval,
|
"intervalSeconds": interval,
|
||||||
"host": {
|
"host": {
|
||||||
"hostname": _read_or(f"{HOST_PROC}/sys/kernel/hostname"),
|
"hostname": _hostname(),
|
||||||
"os": _os_name(),
|
"os": _os_name(),
|
||||||
"kernel": _read_or(f"{HOST_PROC}/sys/kernel/osrelease"),
|
"kernel": _read_or(f"{HOST_PROC}/sys/kernel/osrelease"),
|
||||||
"uptimeSeconds": int(uptime),
|
"uptimeSeconds": int(uptime),
|
||||||
|
|||||||
Reference in new issue
Block a user