#!/usr/bin/env python3 # -*- coding: utf-8 -*- """作业 8 · 步骤 3:单次采集 SLA 并打印摘要。""" from __future__ import annotations import json import os import sys from pathlib import Path import _bootstrap # noqa: F401 import _config as C def _on_207() -> bool: return Path("/opt/workbuddy").is_dir() or os.environ.get("DIFY_API_LOCAL") == "1" def collect_local() -> int: from 作业8_sla_metrics import collect_sla snap = collect_sla() print(json.dumps(snap, ensure_ascii=False, indent=2)) passed = sum(1 for v in snap.get("sla_pass", {}).values() if v) total = len(snap.get("sla_pass", {})) print("[OK] SLA 采集完成 %d/%d 达标" % (passed, total)) return 0 def main() -> int: if _on_207(): return collect_local() from dify_api import Dify d = Dify(C.DIFY_EMAIL, C.DIFY_PASSWORD) try: d.login() out, err = d.sh( "/usr/bin/python3 /opt/workbuddy/scripts_cursor/作业8_SLA监控大盘/作业8_03_采集指标.py" ) print(out or err) return 0 if "[OK] SLA 采集完成" in (out or "") else 1 finally: d.close() if __name__ == "__main__": sys.exit(main())