From 2b9991096b7a71d279783a641a3db0c028869f80 Mon Sep 17 00:00:00 2001 From: OoO Date: Thu, 30 Apr 2026 14:39:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(monitoring):=20=E7=A7=BB=E9=99=A4=E5=A4=B1?= =?UTF-8?q?=E6=95=88=20blackbox=20=E7=9B=AE=E6=A8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CONSTITUTION.md | 2 +- app.py | 4 ++-- config.py | 2 +- docs/guides/devops_handbook.md | 1 - docs/memory/ai_automation_closure_20260429.md | 1 + docs/memory/history_logs.md | 1 + monitoring/prometheus.yml | 2 -- tests/test_prometheus_ai_automation_scrape.py | 8 ++++++++ 8 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CONSTITUTION.md b/CONSTITUTION.md index cfd5e68..5a3e98e 100644 --- a/CONSTITUTION.md +++ b/CONSTITUTION.md @@ -2,7 +2,7 @@ > 本文件定義專案開發的核心準則與不可違反的規範 > **建立日期**: 2026-01-12 -> **當前版本**: V10.25 (Monitoring blackbox/cAdvisor scrape 修復版) +> **當前版本**: V10.26 (Active blackbox target 降噪版) > **最後更新**: 2026-04-30 --- diff --git a/app.py b/app.py index c644e5e..b6d7238 100644 --- a/app.py +++ b/app.py @@ -95,8 +95,8 @@ except Exception as e: sys_log.error(f"無法檢測磁碟空間: {e}") # 🚩 系統版本定義 (備份與顯示用) -# 🚩 2026-04-30 V10.25: Monitoring blackbox/cAdvisor scrape recovery -SYSTEM_VERSION = "V10.25" +# 🚩 2026-04-30 V10.26: Active blackbox target noise reduction +SYSTEM_VERSION = "V10.26" # ========================================== # 🔒 SQL Injection 防護函數 diff --git a/config.py b/config.py index 3c8231d..f47ebde 100644 --- a/config.py +++ b/config.py @@ -254,7 +254,7 @@ YOUTUBE_API_KEY = os.getenv('YOUTUBE_API_KEY', '') # ========================================== # 系統版本與路徑 # ========================================== -SYSTEM_VERSION = "V10.25" +SYSTEM_VERSION = "V10.26" LOG_FILE_PATH = os.path.join(BASE_DIR, 'logs/system.log') public_url = PUBLIC_URL # 用於模板顯示 diff --git a/docs/guides/devops_handbook.md b/docs/guides/devops_handbook.md index fb7560d..04e9bc7 100644 --- a/docs/guides/devops_handbook.md +++ b/docs/guides/devops_handbook.md @@ -51,7 +51,6 @@ **監控腳本**: `/home/wooo/scripts/domain-health-monitor.sh` (於 110 執行) **頻率**: 每 5 分鐘 - `https://mo.wooo.work/health` -> 200 -- `https://momo.wooo.work/health` -> 200 - `https://monitor.wooo.work/` -> 200 - `https://registry.wooo.work/v2/` -> 401 diff --git a/docs/memory/ai_automation_closure_20260429.md b/docs/memory/ai_automation_closure_20260429.md index ee13930..2ea5f76 100644 --- a/docs/memory/ai_automation_closure_20260429.md +++ b/docs/memory/ai_automation_closure_20260429.md @@ -48,6 +48,7 @@ - Grafana dashboard 檔案:`docker/grafana/provisioning/dashboards/json/ai-automation-overview.json`;provider 會載入 JSON 目錄,不需要修改 dashboard provider。 - Active monitoring 使用 `monitoring/prometheus.yml`,不是 `docker/prometheus/prometheus.yml`;若線上 panel 無資料,先查 Prometheus 是否有 `momo-app` target。 - Monitoring compose 的 cAdvisor 只需在 `monitoring` network 內提供 `cadvisor:8080` 給 Prometheus,不應綁定 host `8080`,避免與其他服務衝突;blackbox target 需要 `blackbox-exporter` 容器存在於同一 network。 +- 2026-04-30 線上驗證:目前 active MOMO UAT blackbox target 只保留 `https://mo.wooo.work`;`momo.wooo.work` 與 `wooo.work` 需等 DNS/Nginx 恢復後再加入 active monitoring。 - App container 的 runtime `gunicorn.conf.py` 由 `docker-compose.yml` bind mount;若未來改 gunicorn 設定,不應再手動 `docker cp` 作為常態流程。 ## 驗證紀錄 diff --git a/docs/memory/history_logs.md b/docs/memory/history_logs.md index 9095c8b..929e500 100644 --- a/docs/memory/history_logs.md +++ b/docs/memory/history_logs.md @@ -47,6 +47,7 @@ - **OpenClaw Bot 第一刀拆分**: Telegram API send/retry/file upload helper 移到 `services/openclaw_bot/telegram_api.py`,`routes/openclaw_bot_routes.py` 往 thin Blueprint 收斂。 - **EDM Dashboard endpoint 修復**: 部署後健康檢查抓到活動看板排序連結少 `edm.` blueprint 前綴,修正模板 endpoint 推導並補 5 個活動頁排序連結回歸測試。 - **Monitoring exporter 修復**: Prometheus 已能 scrape `momo-app` V10.24,但 target 檢查發現 `blackbox-exporter` 未啟動、`cadvisor` 因 host `8080` 衝突未進入 monitoring DNS;改為 cAdvisor internal-only 並補 monitoring compose 守門測試。 +- **Active blackbox target 降噪**: 線上 Nginx 與 curl 驗證目前有效 MOMO 入口為 `https://mo.wooo.work`;`momo.wooo.work` 逾時、`wooo.work` DNS 不解析,先從 active UAT blackbox targets 移除,避免舊域名噪音誤導告警。 ### 2026-04-28~29:Phase 3e 重構大戰 + daily_sales cache 隱形 bug 根除 - **app.py 縮減 -10.8%**: 7,386 → 6,590 行,11 commits 全綠零 502。 diff --git a/monitoring/prometheus.yml b/monitoring/prometheus.yml index f015569..bf2e508 100644 --- a/monitoring/prometheus.yml +++ b/monitoring/prometheus.yml @@ -57,8 +57,6 @@ scrape_configs: static_configs: - targets: - https://mo.wooo.work - - https://momo.wooo.work - - https://wooo.work - http://192.168.0.110:5000 relabel_configs: - source_labels: [__address__] diff --git a/tests/test_prometheus_ai_automation_scrape.py b/tests/test_prometheus_ai_automation_scrape.py index 41f45c7..8e6ab4e 100644 --- a/tests/test_prometheus_ai_automation_scrape.py +++ b/tests/test_prometheus_ai_automation_scrape.py @@ -37,6 +37,14 @@ def test_monitoring_stack_declares_blackbox_exporter(): assert "blackbox-exporter:9115" in (ROOT / "monitoring/prometheus.yml").read_text(encoding="utf-8") +def test_active_blackbox_targets_only_include_live_uat_momo_entrypoint(): + config = (ROOT / "monitoring/prometheus.yml").read_text(encoding="utf-8") + + assert "https://mo.wooo.work" in config + assert "https://momo.wooo.work" not in config + assert "https://wooo.work" not in config + + def test_compose_prometheus_uses_container_dns_for_momo_app(): config = (ROOT / "docker/prometheus/prometheus.yml").read_text(encoding="utf-8")