背景:當每秒數千萬筆遙測成為日常
Netflix 的 Prasanna Vijayanathan 與 Renzo Sanchez-Silva 在 QCon London 2026 的演講(由 InfoQ 收錄)中,說明他們如何處理大規模可觀測性。先看規模:2024 年底的 Jake Paul 對 Mike Tyson 拳擊賽事,為 Netflix 帶來約 6,500 萬個同時觀看串流;用戶端應用每天向後端送出超過 20 億次請求;而為了掌握這些流量,可觀測性系統每秒必須處理超過 3,800 萬筆即時日誌事件。這背後是全球各種電視、手機與筆電等用戶端平台、數千個微服務、CDN 節點,以及同時在跑的數千個 A/B 測試。
在這種規模下,要讓每一位使用者每次觀看都順利,真正的難題不是工具不足,而是資料工程。傳統可觀測性偏向監控與告警:服務出錯就告警,再由人工判斷、分派、找開發者修復,最後確認指標回到預期。這段流程在 Netflix 的實際案例中相當昂貴。曾有一次用戶端平台在下午三點半觸發告警,值班人員先觀察是否會自行恢復,數小時後才確認是真問題;追查過程中發現另一個團隊其實早在一點半就在處理同一件事。整起事件共有九個團隊被呼叫、超過 30 名工程師以不同角色投入,並牽連另外三起被標記的相關事件。約六點半才確認根因是一家服務自認重要性較低而縮減容量,造成反向傳播的錯誤,修復後於一小時內恢復。四小時、九個團隊,對 Netflix 而言只是平均案例。
他們歸納出四個結構性原因:資料來源各自為政,日誌、指標、事件與追蹤分散在不同儲存、格式不一致;告警因此缺乏上下文,不同團隊各自從自己的資料源看待同一個問題;分派與除錯流程複雜;而距離使用者五到十跳以外的下游服務,幾乎無法知道自己如何影響終端使用者體驗。
核心:從連結資料到本體論
Netflix 的答案是一個詞:連結性。目標是讓資料、告警、除錯流程與根因分析彼此相連,形成單一的可觀測性抽象層,讓儀表板、告警、除錯與事故應變工具說同一種語言。起點是把 metrics(指標)、events(事件)、logs(日誌)、traces(追蹤)四類資料統一到 MELT 層,並確保它們準確且可行動。
但光是連結仍不夠,真正缺的是元件之間的關係。這就帶出本體論(ontology):一套對型別、屬性與關係的形式化描述,用來編碼意義。基本單位是三元組,由主詞、述詞與受詞構成,一個三元組陳述一項事實,例如某人是員工、某服務屬於最高重要性等級,或某 API 閘道屬於應用程式型別、由某團隊擁有、部署於某區域。Netflix 採用 W3C 標準,包括 RDF、OWL、查詢語言 SPARQL,以及形狀約束語言 SHACL,後者可表達「服務可以被終止,但容量低於 10% 時不得終止」這類規則。他們的圖譜資料庫稱為 QuipuDB,所有內容都可透過 SPARQL 查詢,並以命名空間維持 URI 穩定。
技術脈絡:以收穫流程把混亂轉為確定性
事故討論多半發生在 Slack,伴隨 incident.io 與 PagerDuty 的通知,數百則訊息、多個服務與人員交錯。Netflix 建立「收穫流程」,把每個通道的訊息送往一群豐富器(enricher):以確定性的規則與正則表達式抽取 ID、Jenkins 工作、URL、版本、情緒等實體,再呼叫可觀測性 API 補強,最後由大型語言模型找出新的概念或關係,例如「金絲雀分析失敗」、「部署失敗」。所有抽取結果都會與軟體目錄等中繼資料來源比對驗證,避免服務或區域辨識錯誤。
流程刻意把不確定性壓縮為確定性:輸入是通道裡的混亂,輸出則是可查詢的三元組。大型語言模型只在受約束的分類體系內選擇,例如一則對話只能是事故、提問、討論或決策四者之一,藉此降低幻覺。產出以 Turtle 序列化寫入 S3,同時產生 Parquet 檔,圖譜資料庫再以變更資料擷取串流即時載入。截圖、圖表等檔案以二進位物件形式保存在 S3,並與對應的指標實體連結,方便日後鑑識分析。
Netflix 也讓 Claude 參與開發本身:每次收穫會建立 git worktree 以免分支衝突,一個事故可能產生十幾個分支,由 Claude 比對、挑選、修正抽取腳本中的錯誤,再由人類確認合併。他們稱之為知識飛輪:觀察、豐富、推論、適應,每一圈都讓結構更穩定,從資料到資訊、知識,再到找出根因。其間也自然辨識出主題專家與服務相依拓撲。
影響與限制
應用的成果是 AutoSRE,一套以 AI 輔助網站可靠性工程的自動化系統,即時接入指標、日誌、追蹤、Slack、服務拓撲與裝置,並查詢知識圖譜,關聯速度遠快於人工,且會讀程式碼。由於單次回答常不精準,系統也支援追問。Netflix 設定的下一步有三:自動根因分析、自動修復(例如直接終止執行個體),以及最終的自癒基礎設施,甚至把本體論一路合併到資料血緣,追溯到某部影片的產生流程。
限制同樣明確。去重與歧義目前仰賴開放世界假設,讓模型持續附加概念,再靠人類審查收斂;未來需要模式抽取層來一般化。為降低誤關聯,他們採用瑞士起司式的多層防線、凍結輸入輸出的評估系統與人在迴路,並規劃以強化學習吸收回饋。規模方面,每秒 3,800 萬筆資料不會進入 Turtle,只保留指紋與中繼資料以控制基數。此外,本體論的形式推理(非 AI 的邏輯推演)可用來偵測矛盾、傳遞關係,甚至找出「應該發生卻沒發生」的事;本體論的變更頻率在事故領域已趨穩定,告警與管線領域範圍較小、控制更嚴。是否開源,目前仍未定案。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。