Skip to content
ADP
API Design PrincipleBETA

[ADP-611] 事件嚴重性

概述

在事件驅動系統中,能夠區分不同嚴重程度的事件對於有效的事件處理和系統監控至關重要。本 ADP 定義了使用 CloudEvents 嚴重性擴展來標記事件嚴重性的標準方法。

指導原則

當需要區分事件嚴重性時:

  1. 必須(MUST)使用 CloudEvents 嚴重性擴展來標記事件的嚴重程度。

  2. 事件生產者必須(MUST)為需要標記嚴重性的事件設置 severitytextseveritynumber 屬性。

  3. severitytext 屬性必須(MUST)是以下預定義值之一: ALERTCRITICALERRORWARNINGNOTICEINFORMATIONALDEBUG

  4. severitynumber 屬性必須(MUST)是一個介於 0 到 399 之間的整數。

  5. severitytextseveritynumber 必須(MUST)保持一致,遵循以下對應關係:

    • ALERT: 9-0
    • CRITICAL: 19-10
    • ERROR: 29-20
    • WARNING: 39-30
    • NOTICE: 49-40
    • INFORMATIONAL: 99-50
    • DEBUG: 399-100
  6. 事件消費者應該(SHOULD)能夠根據事件的嚴重性進行適當的處理和優先級排序。

  7. 系統設計者應該(SHOULD)定義清晰的嚴重性級別使用指南,以確保一致性。

CloudEvents 嚴重性擴展

嚴重性擴展為 CloudEvents 添加了兩個屬性:

  • severity: 表示事件嚴重程度的字串值。
  • severitynumber: 表示事件嚴重程度的數值。

帶有 severityseveritynumber 的 CloudEvent 示例:

json
{
    "specversion" : "1.0",
    "type" : "com.example.someevent",
    "source" : "/mycontext",
    "id" : "C234-1234-1234",
    "time" : "2023-06-01T10:30:00Z",
    "severitytext": "ERROR",
    "severitynumber": 25,
    "data" : {
        "message" : "這是一個錯誤事件"
    }
}

實施建議

  1. 建立明確的嚴重性分級標準,確保團隊成員一致理解和使用。

  2. 實現基於嚴重性的事件路由和處理機制,可以同時考慮 severitytextseveritynumber

  3. 考慮將嚴重性與告警系統集成,以便及時回應高嚴重性事件。

  4. 在日誌和監控系統中使用嚴重性資訊來優化問題診斷和系統健康評估。

參照