Fix mojibake text and add md RAID checks

This commit is contained in:
2026-02-25 01:32:55 +03:00
parent 678332e6d0
commit efa5dd9644
3 changed files with 71 additions and 17 deletions

View File

@@ -37,7 +37,7 @@ def _npm_api_base(cfg) -> str | None:
def health(cfg, container_map: dict | None = None) -> str:
lines = ["рџ©є Health check\n"]
lines = ["🩺 Health check\n"]
thresholds = cfg.get("thresholds", {})
disk_warn = int(thresholds.get("disk_warn", 80))
load_warn = float(thresholds.get("load_warn", 2.0))
@@ -45,9 +45,9 @@ def health(cfg, container_map: dict | None = None) -> str:
env = os.environ.copy()
env.update(RESTIC_ENV)
subprocess.check_output(["restic", "snapshots"], timeout=10, env=env)
lines.append("рџџў Backup repo reachable")
lines.append("🟢 Backup repo reachable")
except Exception:
lines.append("🔴 Backup repo unreachable")
lines.append("🔴 Backup repo unreachable")
containers = container_map if container_map is not None else _containers_from_cfg(cfg)
for alias, real in containers.items():
@@ -55,20 +55,20 @@ def health(cfg, container_map: dict | None = None) -> str:
f"docker inspect -f '{{{{.State.Status}}}}' {real}"
)
if out.strip() != "running":
lines.append(f"🔴 {alias} down")
lines.append(f"🔴 {alias} down")
else:
lines.append(f"рџџў {alias} OK")
lines.append(f"🟢 {alias} OK")
npm_cfg = cfg.get("npmplus", {})
npm_base = _npm_api_base(cfg)
if npm_base:
npm_status = _request_status(npm_base, npm_cfg.get("verify_tls", True))
if npm_status == 200:
lines.append("рџџў NPMplus API OK")
lines.append("🟢 NPMplus API OK")
elif npm_status is None:
lines.append("🔴 NPMplus API unreachable")
lines.append("🔴 NPMplus API unreachable")
else:
lines.append(f"рџџЎ NPMplus API HTTP {npm_status}")
lines.append(f"🟡 NPMplus API HTTP {npm_status}")
g_cfg = cfg.get("gitea", {})
g_base = (g_cfg.get("base_url") or "").rstrip("/")
@@ -84,22 +84,22 @@ def health(cfg, container_map: dict | None = None) -> str:
g_status = status
break
if g_status == 200:
lines.append("рџџў Gitea API OK")
lines.append("🟢 Gitea API OK")
elif g_status is None:
lines.append("🔴 Gitea API unreachable")
lines.append("🔴 Gitea API unreachable")
else:
lines.append(f"рџџЎ Gitea API HTTP {g_status}")
lines.append(f"🟡 Gitea API HTTP {g_status}")
usage, mount = worst_disk_usage()
if usage is None:
lines.append("вљ пёЏ Disk n/a")
lines.append("⚠️ Disk n/a")
elif usage > disk_warn:
lines.append(f"рџџЎ Disk {usage}% ({mount})")
lines.append(f"🟡 Disk {usage}% ({mount})")
else:
lines.append(f"рџџў Disk {usage}% ({mount})")
lines.append(f"🟢 Disk {usage}% ({mount})")
load = psutil.getloadavg()[0]
lines.append(f"{'рџџў' if load < load_warn else 'рџџЎ'} Load {load}")
lines.append(f"{'🟢' if load < load_warn else '🟡'} Load {load}")
return "\n".join(lines)