跳至主要內容
CDelivery

設定健康檢查

使用 Hurl 或自訂指令檢查應用程式回應,設定目標、執行間隔和發佈驗證。

XHealth 定期執行一個檢查任務,驗證應用程式是否滿足你定義的條件。它獨立於容器執行狀態;設定和修改需要 Operator 或 Admin。

立即執行

Operator 或 Admin 可以在 XHealth 頁面點選 立即執行,呼叫不帶請求本文的 POST /api/apps/{name}/xhealth/run,或使用 MCP/Agent 工具 xhealth_run 並傳入 app。檢查必須已啟用,使用已儲存的設定對目前應用程式執行。等待啟動或執行中再次觸發會回傳 409;下次定時間隔從新一輪開始時起算。Guardian 的候選檢查獨立執行。

API 接受請求後回傳 202 和 {"ok":true},不等待檢查結果。重新整理頁面、呼叫 xhealth_get 或查看 XHealth 日誌以瞭解目前檢查。逾時或回應遺失不代表提交失敗,應先查詢狀態,再決定是否重新執行。請求不會去重,一輪結束後再次呼叫會啟動新一輪。

建立檢查

  1. 打開應用程式的 XHealth 頁面。
  2. 選擇 Hurl 檔案或自訂指令。
  3. 選擇檢查目標,填寫執行間隔;間隔至少為 1 分鐘。
  4. 初次設定時先保持 Guardian 關閉,確認檢查本身能夠穩定通過。
  5. 儲存後觀察狀態與檢查日誌。

目標可以來自應用程式已設定的網域、發佈連接埠,或直接指定容器內部連接埠。網域及發佈連接埠最終用於定位應用程式的目標連接埠,規則必須能夠唯一確定它。

Hurl 示例

為 Nginx 入門應用程式建立一個文字檔案:

GET {{TARGET_URL}}/
HTTP 200

上傳該檔案,選擇可用的 Hurl 版本,將目標設定為內部連接埠 80,間隔設為 1 分鐘。檔案格式見 Hurl 請求文件。

CDelivery 通過 HURL_VARIABLE_TARGET_URL 提供 TARGET_URL。預設值使用內部 HTTP 地址和所選目標連接埠,因此這個示例檢查應用程式回應,不等同於檢查公網 DNS、外部 HTTPS 憑證或完整用戶端連線路徑。

檔案必須非空,大小不超過 1,023,999 位元組。之後只調整間隔等設定時,可保留已使用的檔案。

自訂指令

自訂檢查使用應用程式映像檔執行,映像檔必須包含所需工具。平台提供:

環境變數 含義
TARGET_HOST 本輪檢查應存取的應用程式主機
TARGET_PORT 已解析的目標連接埠

指令應以結束代碼 0 表示成功,非 0 表示失敗。需要變數替換或管道時,顯式使用映像檔內存在的 shell;不要把檢查任務中的 localhost 當作正在執行的業務容器。

例如映像檔確實包含 curl 和 sh 時:

sh -c 'curl --fail --silent --show-error "http://$TARGET_HOST:$TARGET_PORT/health"'

檢查應盡量唯讀,避免週期性檢查重複建立訂單或修改業務資料。

與 Guardian 的關係

驗證檢查穩定可靠後,可以在同一頁面開啟 Guardian,讓相關設定更新先通過候選驗證。本地資料應用程式不支援 Guardian。完整流程見發佈驗證。

刪除檢查會停止後續週期性驗證,並影響依賴它的發佈保護。修改目標、網域或連接埠時,應同時核對檢查仍能解析到正確目標。

輸入關鍵字搜尋…

↑↓ 移動↵ 選擇Esc 關閉