今天要與大家探討「可觀測性管道 Observability Pipeline 」主題
在上一篇提到可觀測性信號(Observability Sialgns),為了處理這龐大的遙測數據資訊與分析,我們需要有效的方式來整合這些遙測數據,可觀測性管道的概念也因應而生,資料從它的來源地匯出到使用者需要查詢的地方,這包含以下四個不同的階段
當有多種可觀測性信號時,意味需要不同的收集、儲存跟查詢層獨立的系統處理方式。例如在 Open Source 的世界中,大家所重視的三個可觀測性信 Metrics、Traces、Logs 可以分別採用 Prometheus、ElasticSearch 和 Jaeger 作為解決方案。這裡列出每項服務的管道
Prometheus for Metrics
collect (prometheus scraper) -> ingest(prometheus) -> store (prometheus) -> query (prometheus)
Elasticsearch for logs
collect (logstash) -> ingest (elasticsearch) -> store (elasticsearch) -> query (elasticsearch)
Jaeger for traces
collect (jaeger collector) -> ingest (jaeger) -> store (cassandra) -> query (jaeger)
當可觀測性資料越來越多,隨之而來的挑戰是儲存資料空間與查詢效能的議題浮上檯面。在 Open Source 中可以透過以下解決方案
前面提到的四個階段中,資料來源地收集是相對重要的。它決定了我們可以收集多少資料,以及我們可以如何使用這些資料,這裡針對 Collect 階段做進一步的探討。在應用程式蒐集可觀測性資料時可能有下面流程
以上組合共同創建出收集的可觀測性管道。透過簡單範例讓大家更清楚
接下來,我們來探討可觀測性管道的三個重要組件
以上是今天的分享。下一篇休刊,如果有任何疑問或想法,歡迎留言提出討論 !
The Architecture of Modern Observability Platforms
First Mile Observability and the Rise of Observability Pipelines