v0.1.0

告警規則

本頁說明 go-web-monitor 何時寄出離線告警、失敗計數如何累積與歸零,以及告警信的內容。

失敗計數

每個網站在 .webMonitor.json 有一個 count 欄位,記錄連續離線次數。每輪檢查後依下表更新(internal/service/monitor.go:159):

本輪結果 原計數 動作 新計數
上線 任意 無 0
離線 0–3 無 原計數 + 1
離線 4 寄出告警 0

條件寫法是 (count+1)%5 == 0;由於計數在第 5 次時歸零,實際效果是「每累積 5 次連續離線寄一次」。

stateDiagram-v2
    [*] --> Healthy
    Healthy: 上線(count = 0)
    Failing: 離線(count 1–4)
    Healthy --> Failing: 離線
    Failing --> Failing: 離線且 count < 4
    Failing --> Healthy: 上線
    Failing --> Alerted: 第 5 次離線
    Alerted: 寄出告警,count 歸零
    Alerted --> Failing: 仍離線
    Alerted --> Healthy: 上線

告警頻率

情境 結果
網站短暫離線 1–4 分鐘後恢復 不寄信
網站持續離線 約第 5、10、15... 分鐘各寄一次
手動 refresh 也算一輪,會加速累積

告警不會在網站恢復上線時寄出「恢復通知」。

告警信內容

欄位 值
主旨 Website Offline Alert: <url>
格式 HTML(Content-Type: text/html; charset=UTF-8)
內文 網址、Status: Offline、Reason: HTTP <code>、檢查時間

Reason 中的狀態碼在連線失敗時為 HTTP 0。

寄送條件

告警以背景 goroutine 呼叫 SMTP.SendEmail(),下列任一不成立時不會寄出,錯誤只寫到 stderr(slog):

SMTP 的設定方式見 設定 Email 告警,連線細節見 SMTP 連線。

EN