目錄

DevOpsDays Taipei 2026 心得

這次在 DevOpsDays Taipei 2026 分享了《Alert 分析進化史:從 Excel 到 AI Agent》。這個專案我從接手到現在大約做了一年,這次分享聚焦在怎麼把 Alert 的事後分析,從一份 Excel 一路長成 AI 分析驅動的流程。

這篇把當天講的、還有當天沒講清楚的,一起整理得更完整一點。

本文的內容與觀點皆由我自己撰寫,Claude Opus 4.8 協助潤飾文字。

正式開始前,補一下當天忘了先說清楚的前提:

  1. 簡報裡講的「AI」:我全部都是用 Claude Code。具體上是用 Skill 來控制 Workflow,所以這套經驗其實跟用什麼模型無關,換個模型、換個工具,道理一樣成立。
  2. 這裡的「Alert」全是應用程式層級的 Alert,不是 Infra 或系統層級。例如:不是 CPU、DB Loading 這一類錯誤,而是呼叫 API 出問題、或某個功能突然被大量使用這類型的。

故事的起點是一份 Excel:第一線同事每天用它記錄 Alert,出事再去翻 Kibana 找錯誤。流程是這樣的:

  1. Alert 發出
  2. 用 Excel 記錄
  3. 去 Kibana 找錯誤

這個做法是對的。只是真正的問題在別的地方:網路天生就不是 100% 穩定,量一大,本來就會有一定比例的 Alert 冒出來。這篇想回答的是,這些 Alert 該怎麼好好被管理、被記錄起來,而不要全部塞進 Excel 裡。講白一點,就是不要讓這些其實是假警報的 Alert,三更半夜把整個部隊叫起床。

一開場我就丟出第一個困難:這是跨團隊任務,而每個團隊都有自己的業務目標,平常本來就是以產品功能為重,所以調整 Alert 這件事的優先度,是很容易被往後排的

既然優先度有困難,我就選了一條阻力最小的路:

開團隊 repo → 用 AI 分析 log → 把詳細資訊記錄成 issue → 建立 issue 看板來追蹤。

選這條路的關鍵,是 repo 上的 issue 完全獨立:團隊的主要任務不會被這個 repo 的 issue 干擾,對管理來說只要定期檢視就好。不去干擾其他團隊的優先順序,是這套設計推得動的前提。

第二個困難更根本:

Log 格式散亂 → 程式分析不友善 → AI 沒辦法有效利用工具分析 → 最後建出來的 issue 很雜亂。

Log 格式,我花了非常多時間想辦法統一。現況是:在建立 Alert SOP 的同時定義 Alert 類型,再順水推舟定義出 Alert Model。

說是 Alert Model,其實就是 Log 規範,這部分有參考 OpenTelemetry 的定義。光是這件事,大概就討論了三個多月,才總算有第一個範例在線上跑起來。

會後有朋友問我 Log 要怎樣才能寫好,我才想到我忘了放上這個說明。

我很久以前就在不斷調校 Log,更早的筆記可以參考 Log 層級的小筆記

分享一個我自己的思考框架:

因為 Log 本質上就是 Event,所以可以直接參考 Event Listener 的機制來設計它。 一個 Class 搭配多個 Property,對應到 Log,就是 Message + Attribute

Event  ─ Class      + Property
Log    ─ Message    + Attribute

當然本質或應用上一定還有更多差異,但這個思路對於團隊該怎麼建立 Log 是很有幫助的起頭。每次設計 Log 時,都可以反覆問自己兩個問題:

  • 這個 attribute 對於理解上下文到底有沒有用?
  • 這個 message 真的算是一個「類型」嗎?

我的經驗知道這樣設計有助於分析 Alert,但不是每個團隊都能接受。所以 Alert 分析裡才會多一塊在做「錯誤合併」,而這塊非常困難。

我們都可以預期 AI 會亂做;真正麻煩的是,要怎麼叫 AI 把它亂做的結果持續更新、記錄下來。我目前的概念是:在 issue 裡存 regex,但 AI 要怎麼在一堆 issue 裡找到對應的那條 regex。這點我到現在還沒解決,雖然可以用各種 JSON 來記錄,只是管理肯定是困難的,可以想像有個人一直開出以前開過的 issue,這該怎麼管?

講到這裡會發現,第二個困難其實也是個「人」的問題:我覺得好分析的,別人不這麼覺得。而事實上 AI 也真的很難分析它,就像同事在 5/28 的 Meetup 分享過的那句話:這個難分析的模糊,會被不斷放大。

繞了一圈,最後想回扣一個重點:通常要人覺得好做,AI 才會覺得好做。 那些最初的技術本質,其實一點都沒變:

  • 要把程式寫好,AI 才有辦法接手、並寫出好的程式。
  • Alert 管理要把 Log 寫好,AI 才有辦法接手、並分析出根因。

順便分享兩個我最近剛好遇到、長得很像的例子:

  • 規格要先把情境想清楚,AI 才有思路寫出真正符合業務需求的程式。
  • 簡報要先把大綱想好,AI 才有辦法照著流程把投影片產出來。

這幾個例子都有兩個共通點:

  1. 流程要進到下一個階段,前一個階段就必須把事情全部做完。 這剛好對照到我系統裡的設計:每個流程都是一個節點,之所以能在任何一個階段重來,正是因為前一個階段已經完備了。
  2. 把「AI」這兩個字換成「新人」、或是「隔壁同事」,結論還是對的。 所以還是那句話:人覺得好做,AI 才會覺得好做。

最近有同事來問我「AI 流程該怎麼設計」,我都會反問一句:

在沒有 AI 的時候,我們會怎麼做?

這個反問很多時候都派得上用場。其實很多年前,我也是用一樣的模式問自己:「在沒有 Docker 的時候,我們會怎麼做?」往往馬上就找到解答了。

雖然 AI 的出現造就了更多可能,但先人的智慧、技術的本質,依然是不變的。AI 在現階段能「直接」幫到我們的,其實都只是把流程裡的模糊放大出來,逼我們去面對、去把它解決掉。

所以這場分享真正想說的,大概就是這句:別急著把 AI 當解藥,先把程式寫好、把 log 寫好、把規格想清楚、把大綱配好,完成這些 AI 照不到的基本功,才是讓 AI 真的幫得上忙的前提。