走完整個系列後,最後一章把視角從工具細節抽高,回顧過去的旅程,並嘗試展望 Observability 接下來可能的走向:從 CNCF 專案版圖、訊號類型的擴張、技術趨勢,到背後的商業景氣。

系列重點回顧#

整個系列大致可拆成這幾條主線:

  • Observability 初探:從整合更多訊號出發,配合 Grafana 這類能打破資料孤島(Data Silo)的單一介面平台,提升整體可觀測性。
  • Metrics:以 Prometheus 為核心,並回顧 Prometheus 之前的 StatsD、Zabbix 等老牌工具。
  • Logs:實作 Fluent Bit、Vector、Promtail 等多款收集器,搭配 Loki 進行儲存。
  • Traces:聚焦在幾乎成為業界標準的 OpenTelemetry 生態,以及 Tempo、Jaeger 等儲存方案。
  • 應用篇:訊號間的協同、Grafana Cloud 使用,以及 Production 環境特別需要關注的議題。

每篇 Lab 不只是「跑得起來」,背後也帶到一些觀念與小知識,例如:物件儲存(Object Storage)能大幅壓低成本、收集工具的流程都離不開「輸入-處理-輸出」三階段、Grafana 與 LGTM 的設計理念深受 Prometheus 與 Cortex 影響等。

一張表看懂工具光譜#

把生成、收集、儲存、使用四個階段攤開,每個 Pillar 對應的工具大致長這樣:

  • 生成
    • Metrics:eBPF、Prometheus Client、Prometheus Exporter、StatsD Client。
    • Logs:Application 自身輸出。
    • Traces:eBPF、OpenTelemetry SDK。
    • Profiles:eBPF、Pyroscope。
  • 收集
    • Metrics:Fluent Bit、Grafana Agent、OpenTelemetry Collector、Prometheus、StatsD、Vector。
    • Logs:Fluent Bit、Grafana Agent、OpenTelemetry Collector、Vector。
    • Traces:Fluent Bit、Grafana Agent、OpenTelemetry Collector、Vector。
    • Profiles:Grafana Agent、Pyroscope。
  • 儲存
    • Metrics:Cortex、Mimir、Prometheus、Thanos。
    • Logs:Loki。
    • Traces:Jaeger、Tempo。
    • Profiles:Pyroscope。
  • 使用
    • Metrics:Grafana、Zabbix。
    • Logs:Grafana。
    • Traces:Grafana、Jaeger。
    • Profiles:Grafana、Pyroscope。

把處理流程簡化下來其實只有四個提問:資料如何產生?要 Pull 還是 Push 收集?該用什麼格式儲存?查詢時又會碰到什麼挑戰?掌握這四題,剩下就像玩樂高,依需求自由堆疊。

CNCF 與 Observability 的未來#

提到 CNCF,很多人第一直覺是 Kubernetes 與容器技術。但 Observability 在 CNCF 中份量同樣不輕:Prometheus 緊接 Kubernetes 成為 CNCF 第二個專案,本系列介紹過的 Jaeger、OpenTelemetry、Thanos、Cortex 等也都是 CNCF 專案。原因不難理解,部署技術固然重要,但服務上線後能否穩定運作、創造價值,同樣關鍵。

加入 CNCF 後,專案需要保持廠商中立,這對使用者選型是一大保障,可避免被特定廠商鎖定(Vendor Lock-in)。

CNCF 把專案分為三個成熟階段,由低到高為:

  • Sandbox(沙箱)
  • Incubating(孵化)
  • Graduated(畢業)

選工具時,能先看一下其 CNCF 階段,作為穩定度的參考。

Observability Signals 的未來#

CNCF 的 Observability Whitepaper 建議把過去的「Three Pillars of Observability:Metrics、Logs、Traces」統稱為 Observability Signals,因為提供 Observability 的資訊不限這三種,例如 Profiles、Dumps 等也都能加入。

Jaeger 創作者 Yuri Shkuro 在 2022 年發表了一篇〈TEMPLE: Six Pillars of Observability〉,把訊號擴充成六種:

  • Traces:分散式追蹤,關注跨服務的呼叫順序與關係。
  • Events:會對系統造成影響的外部變更事件,例如部署、設定變動。
  • Metrics:量化的系統狀態或資源指標。
  • Profiles:程式執行底層資訊,常用於效能分析。
  • Logs:程式執行過程中產生的紀錄。
  • Exceptions:異常事件的紀錄,結構與資訊通常比一般 Log 更豐富。

這些命名雖然分歧,但共識是:不該把 Observability 訊號侷限在 Metrics、Logs、Traces;只要對提升 Observability 有幫助的資料,都可被納入。

引用文中的一句話:「Pillars are what you build upon, not the end goal.」這些柱子只是基礎,目標是利用它們解決問題,而不是把它們當成終點。

技術的未來:Profiles 與 eBPF#

Metrics 與 Logs 在傳統 Monitoring 中已有非常成熟的解法,Traces 經多年發展也匯聚成 OpenTelemetry。下一波的焦點則是 Profiles 與 eBPF。eBPF 已有完整生態與基金會,許多公司大舉投入,在 Observability 領域不只能用於 Profiles,也能產出 Metrics 與 Traces。eBPF 領域的代表專案 Cilium 在 2023 年成為 CNCF 第一個 eBPF 類型的 Graduated Project,也是這條趨勢的具體里程碑。

商業的未來#

評估一個技術領域是否有發展性,看商業公司的投入是最直觀的方式。從 Monitoring 進入 Observability 的時代,許多老牌廠商開始把「Observability」放進產品行銷,或重新定位自己。觀察當時市場上的代表性公司:

  • Grafana Labs:以 Grafana、Loki、Tempo 等開源產品為核心,並提供託管服務的 Grafana Cloud;2021 年估值約 30 億美金。
  • New Relic:APM(Application Performance Management)老牌玩家,曾在 NYSE 上市(NEWR),2023 年宣布以 65 億美金被收購。
  • Datadog:以基礎設施監控、APM、Log 管理整合為主,於 NASDAQ 上市(DDOG)。
  • Splunk:原以 Log 分析起家,後續延伸到 APM 與 AIOps,於 NASDAQ 上市(SPLK)。
  • Elastic:以 Elasticsearch 為基礎,逐步補齊完整 Observability 體系,於 NYSE 上市(ESTC)。
  • Dynatrace:提供 Observability、APM 與基礎設施監控服務,於 NYSE 上市(DT)。

這些公司的規模與動向反過來也說明 Observability 是一塊有真實商業價值的領域,個人在此累積的能力具備明確的職涯回報。

結語#

有人會說 Observability 不過是 Monitoring 的舊瓶新酒。從最高層次看,兩者目標確實都是「確保服務穩定」。但 Observability 更強調資訊背後的 Context,而非單看量化指標與告警。當 Metrics、Logs、Traces 等訊號相互連結,脈絡才會浮現,問題的根源才有機會被快速定位,而不只是知道「現在有事發生」。

收集多大、多多的資料,只能證明資料流設計得漂亮。真正的價值在於:Observability 是否真的縮短了問題處理時間(MTTR),甚至能在問題真正爆發前就先示警,讓事故被預防而不是補救。

訊號、工具、平台都只是基礎,真正讓組織受益的是「拿這些資料解決問題」的能力。希望整個系列能在概念、工具與一些歷史脈絡的層面,給未來想推動 Observability 的讀者一些起點。

原文出處#

  • 原書/iThome:https://ithelp.ithome.com.tw/articles/10339801