#!/usr/bin/env python3 # -*- coding: utf-8 -*- """作业 8 · 步骤 1:部署 Prometheus + Grafana。""" from __future__ import annotations import sys from pathlib import Path import _bootstrap # noqa: F401 import _config as C from dify_api import Dify LOCAL_SH = ( Path(__file__).resolve().parents[2] / "scripts_bash_cursor" / "作业8_SLA监控大盘" / "作业8_01_部署监控栈.sh" ) def main() -> int: d = Dify(C.DIFY_EMAIL, C.DIFY_PASSWORD) try: d.login() d.sftp.put(str(LOCAL_SH), "/tmp/作业8_01_部署监控栈.sh") out, err = d.sh("bash /tmp/作业8_01_部署监控栈.sh") print(out or err) out2, _ = d.sh("curl -sf '%s/-/healthy'" % C.HOMEWORK8_PROMETHEUS_URL) if "Healthy" not in (out2 or ""): print("[FAIL] Prometheus 未就绪") return 1 out3, _ = d.sh("curl -sf '%s/api/health'" % C.HOMEWORK8_GRAFANA_URL) if "ok" not in (out3 or "").lower(): print("[FAIL] Grafana 未就绪") return 1 print("[OK] 监控栈 %s / %s" % (C.HOMEWORK8_PROMETHEUS_URL, C.HOMEWORK8_GRAFANA_URL)) return 0 finally: d.close() if __name__ == "__main__": sys.exit(main())