Files
xiaoxia-saas/tests/unit/test_production_resource_monitoring.py
T
Xiaoxia AI 18a3490eda
CI/CD Pipeline / Validate Code Quality And Tests (push) Has been cancelled
Deploy / Deploy Staging (push) Has been cancelled
Deploy / Deploy Production (push) Failing after 2047h3m30s
Deploy / Build Production Runtime Images (push) Failing after 2047h3m32s
chore(ops): add production resource monitoring check
2026-06-23 08:27:04 +08:00

47 lines
1.9 KiB
Python

from pathlib import Path
def test_production_resource_check_writes_duty_report():
script = Path("scripts/production_resource_check.sh").read_text(encoding="utf-8")
assert "REPORT_PATH=\"${REPORT_PATH:-/var/lib/xiaoxia-ci/duty_report.json}\"" in script
assert "API_HEALTH_URL=\"${API_HEALTH_URL:-http://127.0.0.1:8001/health}\"" in script
assert "WEB_HEALTH_URL=\"${WEB_HEALTH_URL:-http://127.0.0.1:3002/}\"" in script
assert "EXPECTED_VERSION" in script
assert "json.dump(report" in script
assert "os.replace(tmp_path, report_path)" in script
def test_production_resource_check_has_resource_thresholds():
script = Path("scripts/production_resource_check.sh").read_text(encoding="utf-8")
assert "LOAD_WARN_PER_CPU=\"${LOAD_WARN_PER_CPU:-1.5}\"" in script
assert "MEM_AVAILABLE_WARN_MB=\"${MEM_AVAILABLE_WARN_MB:-256}\"" in script
assert "DISK_WARN_PERCENT=\"${DISK_WARN_PERCENT:-85}\"" in script
assert "SWAP_USED_WARN_PERCENT=\"${SWAP_USED_WARN_PERCENT:-60}\"" in script
assert "未启用 swap" in script
assert "根分区磁盘使用率偏高" in script
def test_production_resource_check_tracks_core_containers():
script = Path("scripts/production_resource_check.sh").read_text(encoding="utf-8")
for container in [
"xiaoxia-api-production",
"xiaoxia-worker-production",
"xiaoxia-web-production",
"xiaoxia-postgres-production",
"xiaoxia-redis-production",
]:
assert container in script
def test_resource_monitoring_runbook_matches_heartbeat_contract():
docs = Path("docs/PRODUCTION-RESOURCE-MONITORING.md").read_text(encoding="utf-8")
assert "/var/lib/xiaoxia-ci/duty_report.json" in docs
assert "ssh xiaoxia-server" in docs
assert "EXPECTED_VERSION=v0.1.15" in docs
assert "*/5 * * * *" in docs
assert "需要老大确认后再启用" in docs