事件處理流水線執行記錄 — 稽核每次流水線執行軌跡,包含節點輸入輸出與失敗原因,是排查流水線問題的核心入口。
概述
流水線執行記錄 = 每次「事件處理流水線(Event Pipeline)」被觸發後留下的稽核 + 排錯日誌。
側欄路徑:告警 → 事件處理流水線 → 執行記錄 Tab,URL /event-pipelines-executions。
每當一個流水線被觸發(無論成功或失敗),都會產生一條執行記錄:
- 成功時:記錄每個節點(Processor)的輸入、輸出、耗時;
- 失敗時:記錄失敗發生在哪個節點、錯誤資訊是什麼;
- 執行中:即時顯示進度,便於檢視長耗時的流水線。
適用場景:
- 流水線「沒生效」?查記錄看是沒觸發還是觸發了但失敗;
- 想知道某個事件最終被哪條流水線處理過;
- 評估各節點效能(看
執行耗時),找出慢節點; - 出 P0 後回放完整的事件處理鏈路。
篩選 & 清單欄位
頁面頂部支援的過濾:
- 自動重新整理:Off / 5s / 15s / 30s / 60s — 除錯新流水線時建議開 5s。
- 關鍵字搜尋:在流水線名稱裡搜尋。
- 觸發模式:3 種 — 見下表。
- 狀態:3 種 — 見下表。
| 欄位 | 含義 |
|---|---|
| 流水線名稱 | 觸發的那條流水線;點選欄位名跳轉到該流水線編輯頁 |
| 觸發模式 | event(告警事件觸發,最常見) / api(外部系統呼叫 API 觸發) / cron(定時器觸發) |
| 狀態 | running(執行中) / success(成功) / failed(失敗,標紅) |
| 開始時間 | 流水線開始執行的時間 |
| 結束時間 | 流水線結束時間;執行中顯示為空 |
| 執行耗時 | duration_ms,單位毫秒;超過 5s 的需要關注是否有慢節點 |
| 觸發者 | event:觸發事件的告警規則名;api:呼叫方資訊;cron:定時任務識別碼 |
執行詳情:排查失敗的核心入口
點選清單列開啟執行詳情,會顯示每個節點的輸入/輸出/耗時/錯誤資訊:
- 節點結果(NodeResults):JSON 形式記錄每個 Processor 的執行結果。可以一節點一節點地看:
- 輸入:上一節點傳入的事件資料
- 輸出:本節點處理後的結果
- 耗時:單節點的執行時間,找慢點用
- 錯誤資訊(ErrorMessage + ErrorNode):失敗時著重看 —
ErrorNode指出失敗發生在哪個節點的 ID,ErrorMessage是具體錯誤(API 逾時、JSON 解析失敗、查詢資料來源拿不到結果等)。 - 輸入快照(InputsSnapshot):觸發流水線時的原始輸入(脫敏後),用於回放除錯。
除錯新流水線的標準動作:在 流水線 編輯頁儲存後,去對應規則觸發一次(或手動呼叫 API),回到執行記錄立刻看到一條
running→ 幾秒後變success或failed。失敗就點開看 ErrorNode,回流水線改那個節點。
資料保留
執行記錄會自動清理:
- 預設保留 7 天(可在
n9e.toml設定檔裡調整); - 每天凌晨 6:00 自動執行清理任務,分批刪除(每批 100 條,間隔 10ms 不影響資料庫);
- 想長期歸檔(合規/故障回顧):透過 API 拉取後入倉自管,UI 內不支援手動延長保留期。
常見問題
Q1:我的流水線明明設定好了,但執行記錄裡完全沒看到它的條目?
A:說明根本沒被觸發。檢查觸發條件:
- 告警流水線(event 模式):在 告警規則 的「流水線設定」區是否綁定了該流水線;事件標籤是否命中流水線的過濾條件。
- 定時流水線(cron 模式):在流水線編輯頁的「觸發器」是否啟用了 cron 運算式。
- API 流水線(api 模式):是否真的有外部系統呼叫過 API(看夜鶯 server 存取日誌)。
Q2:狀態一直顯示 running 不結束,怎麼回事?
A:常見原因有:
- 流水線裡某個節點(如 callback、AI 摘要)呼叫外部服務長時間無回應,被卡住;
- 節點逾時設定過大;
- 後端 worker 程序異常結束導致狀態未更新。
排查思路:看 ErrorNode 是哪個節點,去該節點對應的服務端日誌(如 callback 目標的接收方)確認是否真的在處理。如果是 worker 異常,重新啟動告警引擎服務即可清理殭屍記錄。
Q3:執行耗時 duration_ms 經常幾秒甚至幾十秒,正常嗎?
A:取決於節點類型:
- 純標籤處理(重寫、增強、丟棄):通常 < 100ms,幾秒以上偏慢;
- 基於查詢的節點(事件抑制 QD、附加資訊 QD):依賴底層資料來源回應,1-3 秒正常;
- AI 摘要/截圖/Callback:呼叫外部服務,3-30 秒都可能正常;
- 指令稿執行:完全取決於指令稿本身。
把執行耗時按節點拆開看(詳情裡每個節點都有自己的耗時),找出瓶頸。
Q4:能不能給執行失敗設定告警?
A:暫時沒有官方「流水線失敗就告警」的開關。繞一下:在流水線末尾加一個「Webhook 回呼」節點,外部接收方彙總失敗計數,再設定一條針對該計數指標的告警規則即可。後續版本可能內建該能力。