本章節作為《時光之鏡:透視過去、現在與未來的 Observability》系列的開篇,整理作者撰寫此系列的緣起、文章呈現方式,以及涵蓋的主題範圍,作為後續閱讀的指引地圖。

系列緣起#

作者最初接觸指標監控(Monitoring)、儀表板與鏈路追蹤(Tracing)等技術已有一段時間,但真正體會到可觀測性(Observability)的力量,是在觀看 Grafana 一場 Dashboard 設計主題的 Webinar 之後。Q&A 階段中,講者展示如何從 Metrics 鎖定可疑時間區間,再切換到同一段時間的 Logs 進行交叉比對,這種跨訊號協同的操作方式帶來了強烈的衝擊。

從那次經驗開始,作者深入研究 Grafana 部落格中關於 Metrics、Logs、Traces 三者交互應用的文章,並動手實作了基於 Python FastAPI 與 Java Spring Boot 的兩個示範專案,並把它們公開在 GitHub 上分享。其中的 Dashboard 也曾入選 Grafana 10 週年的 Golden Grot Awards Final List,並有機會在 Grafana Office Hours 中以英文與社群分享。

內部推廣與社群分享的循環,逼著作者不斷重新檢視自己對 Observability 概念與工具的理解;鐵人賽因此成為一次系統化整理與擴展視野的契機。

系列定位與呈現方式#

整個系列文章會交織兩種類型的內容:

  • 概念介紹:作者對於 Observability 各種核心概念與知識點的整理與理解。
  • 工具介紹:聚焦在 CNCF Landscape 中歸類於可觀測性與分析的專案,逐一說明主要元件、想解決的問題,並提供可動手實作的 Lab。

為了降低入門門檻,Lab 環境主要採用 Container 搭配 Docker Compose,避免一開始就被 Kubernetes 的複雜度淹沒。作者特別強調,可觀測性並不是只能服務於 Kubernetes 或雲原生(Cloud Native)架構,傳統大型機台上的單體應用程式(Monolithic)一樣可以透過這些概念與工具獲得幫助,甚至替老舊的祖傳系統(Legacy System)延續壽命。

此外,呼應「時光之鏡」這個主題,部分章節會穿插概念與工具的歷史脈絡,讓讀者理解它們是在怎樣的時代背景下被設計出來的。

系列大綱速覽#

完整系列分為以下幾個段落,本章節整理對應到本筆記中的章節:

  • 開篇:開篇詞、Observability 的過去與現在、Grafana 視覺化平台介紹。
  • Metrics 篇:Metrics 概念、Prometheus、Exporter、Monitoring Best Practices、Mimir、Cortex、Thanos、StatsD、Zabbix。
  • Logs 篇:Logs 概念、Loki、Promtail、Fluent Bit、Vector。
  • Traces 篇:Traces 概念、OpenTelemetry SDK 自動化儀器化、Tempo、Jaeger、OpenTelemetry Collector。
  • 應用篇:Signal Correlation、Span Metrics、Profiles 與 eBPF、Grafana Agent 與 Grafana Cloud、In Production 系列(上線準備、單點故障防範、資料保存期限)。
  • 總結篇:對 Observability 未來發展的觀察與想像。

適合閱讀的對象#

以下是作者預設此系列特別有幫助的讀者群:

  • 想要初步了解或評估在組織中導入 Observability 的工程師與技術主管。
  • 想快速掌握各種 Observability 工具如何使用、彼此如何串接的實作者。
  • 對各個工具背後的設計理念與小知識感到好奇的讀者。

範例程式碼#

整個系列會搭配一個 GitHub Repo 作為 Lab 的程式碼集合:

https://github.com/blueswen/observability-ironman30-lab

未來在本筆記的對應章節中,也會以這個 Repo 作為實作練習的起點。

後續閱讀時建議先掌握開篇兩章(本章與「Observability 的過去與現在」)建立共同詞彙,再依興趣選擇 Metrics、Logs、Traces 任一條路徑深入。

原文出處#

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