iT邦幫忙

2024 iThome 鐵人賽

DAY 2
3

https://ithelp.ithome.com.tw/upload/images/20240916/20152073c9kDJqhmeS.png

前言

作為一個前端工程師,Grafana 這個名詞可能偶爾在技術文章中輕掃而過,基本上沒有機會存在我們的深層記憶中。又或者經過 IT、後端或 DevOps 座位時瞥過螢幕上黑底並有很多橘色 dashboard 的畫面,但不知道那其實就是我們這系列所使用到的 Grafana。

若不是身為 DevOps 的隊友每日開口閉口皆是 Grafana,我可能不會接觸這個平台,更不會知道這個工具也有前端工程師可以發揮的地方。但知己知彼,在牽起 Grafana 與前端的紅線之前,必須先了解 Grafana 這工具的底細,才能更深入地與我們熟悉的領域進行媒合。

Grafana 是圖表工具嗎?

https://ithelp.ithome.com.tw/upload/images/20240916/20152073gWn6z50Vg1.png

在官方文件的簡介說道:

Grafana 是一款開源軟體,能夠查詢、可視化、告警和探索儲存在任何地方的度量數據(Metrics)、日誌(Log)和追蹤(Trace)資料。Grafana 的插件(Plugin)框架也支援多種數據來源,如 NoSQL/SQL 資料庫、工單工具(如 Jira 或 ServiceNow)以及 CI/CD 工具(如 GitLab)。

所以更精確來說 Grafana 是一個『視覺化工具』,但也只是這項工具眾多的功能之一。看過上述官方的介紹,想必對於前端或是完全未接觸監控工具的開發者而言,依舊是霧裡看花。

舉個例子:當服務出問題時,大家的第一個反應通常是『去看 Log!』,透過查看 Log 的錯誤訊息找到問題的源頭,才能接下來進行修復。當服務只有簡單的前後端和資料庫時,很容易就能找到出錯的服務或事件。但當組織逐漸壯大,達到微服務的規模時,要找出那個錯誤點就變得沒那麼簡單了!這時,我們可能需要查看多個服務的 Log,並且追蹤請求在不同服務之間的流轉情況,這樣才能確定問題的真正源頭。

因此,像 Grafana 這樣的工具就變得非常重要,因為它能夠集中展示和分析來自多個服務和數據源的資料,幫助我們更快地找出問題並解決它。以下比較一家電商公司需要監控網站流量、使用者行為、效能指標等的情況下,是否使用 Grafana 的差異:

沒有 Grafana 的情境

  • 複雜的問題排查流程:如果一個服務出現問題,需要先查該服務的日誌。如果發現問題源於另一個服務,再去查找那個服務的日誌,如此反覆。
  • 數據分散:不同的數據源(例如應用日誌(Log)、使用者行為、效能指標等)分散在不同的工具或系統中,難以統一查看和分析。
  • 缺乏全局視圖:很難快速獲得整個系統的全局狀態,無法直觀地了解各個服務之間的依賴關係和互動情況。

有 Grafana 的情境

  • 集中化監控和分析:所有數據源的數據都可以在 Grafana 中顯示,可以在一個儀表板(Dashboard)上看到多個服務和系統的數據,快速發現問題。
  • 高效的問題排查:通過分佈式追蹤和統一的日誌查詢,可以快速追蹤請求路徑,找出問題的根源,減少排查時間。
  • 全局可觀測性:可以在 Grafana 中設置各種儀表板,展示系統的整體健康狀況、服務間的依賴關係、效能瓶頸等,從而更全面地了解和管理所有服務。

Grafana 的前世今生

Grafana 是 2014 年由瑞典工程師 Torkel Ödegaard 創立,作為 ElasticSearch 可視化工具的替代品。主要是用來收集和儲存隨時間變化的數據,比如伺服器的 CPU 使用率、記憶體使用量等。想像一下,應用程式會不斷產生各種數據,這些數據隨著時間變化,比如每秒鐘伺服器的響應時間。Grafana 的目的是把這些數據存起來,並且用漂亮的圖表展示出來,方便監控應用程式的健康狀況或是不同時間點的效能表現。

💡 TIP
Elasticsearch 是一個全文搜索引擎,使用分散式架構(將數據和計算任務分佈到多個伺服器上以提高效能和可靠性的架構),擅長處理大型數據集以及即時的資料分析,並提供快速檢索和複雜查詢能力。適用例如:日誌(Log)分析、效能指標資料、產品描述或交易記錄等使用者行為資料。

演變至今約十年的歷程,Grafana 已經非當時單純的數據可視化工具,更能夠無縫整合和呈現來自各種來源的數據,並有非常豐富的圖表、儀表板和其他多種視覺呈現方式,甚至有客製化的功能。另外也提供完整的告警系統,依據開發者設定的條件和數據閥值發送告警。

同時 Grafana 的所有者 Grafana Lab 也是一個致力於開源的組職,發展出了三種平台模式:OSS(Open Source Software)、Cloud 和 Enterprise。

https://ithelp.ithome.com.tw/upload/images/20240916/20152073Zkkm3bDdim.png

Grafana OSS

Grafana OSS(Open Source Software)是 Grafana 的開源版本,讓全球使用者可以免費使用並參與 Grafana 的開發和貢獻中。並且通過 Grafana OSS 社群的活躍,發展出豐富的插件和資源,讓工具可以高客製化的擴展,以滿足不同的需求。其中開源的項目包括 Grafana 本身,以及 Loki、Tempo、Mimir、Faro 和 Pyroscope 等等專案。

  • Loki:一個輕便的 Log 收集系統,和 Grafana 無縫結合,可以協助查看和分析 Log 資料(例如錯誤訊息)。
  • Tempo:用來追蹤網頁請求的工具,可以聊解一個請求在後端經過了哪些服務,有助於找出效能問題。
  • Mimir:一個強大的資料庫,專門用來儲存和查詢大量的監控數據,讓 Prometheus 監控系統可以處理更多數據。
  • Faro:前端效能監控及可觀測性工具,幫助你監控網頁的速度和效能問題,並且分析原因。

💡 TIP
Prometheus 是一個專門用來監控應用程式和伺服器效能的工具。可以自動收集各種指標數據(如 CPU 使用率、記憶體使用率、請求延遲等),並儲存這些數據,以便後續查詢和分析。另外 Prometheus 提供一個強大的查詢語言(PromQL),能夠靈活地檢索和分析數據。

Grafana Cloud

Grafana Cloud 是一個由 Grafana Labs 提供的托管服務,它不僅包含了 Grafana OSS(開源軟件)所提供的全部功能,還將其與額外的雲端服務和工具相結合。使用者只需在 Grafana Cloud 中設定 Data source,就可以開始建立 Dashboard 和查詢指標資料。非常適合受限於自行架設可觀測性工具的個人或企業使用者。Grafana Cloud 簡化了這些功能的設置和管理,提供了更方便的使用體驗,讓使用者能夠更專注於數據分析和決策,提升業務運營效率。

適合對象:

  • 受限於自行架設可觀測性工具的個人或小型團隊
  • 希望快速部署和擴展可觀測性解決方案的企業
  • 需要整合多種 Data source 和可觀測性工具的組織
  • 尋求降低運維成本和複雜性的公司

https://ithelp.ithome.com.tw/upload/images/20240916/20152073W42w9pl5u4.png

Grafana Enterprise

Grafana Enterprise 是由 Grafana Labs 提供的商業增強版本,同樣建立在 Grafana OSS 基礎上,並增加了許多企業級功能和支援。其中包括專為企業設計的附加功能,如角色基於訪問控制(RBAC)、更深入的 Data source 整合、高級查詢功能和專業技術支援。這些功能適合需要更高級別安全性、合規性和支援的企業使用者。同時此版本也成為他們的盈利模式。

比較

Grafana Cloud 和 Grafana Enterprise 之間的主要差別在於部署方式、管理維護、和功能套件:

  1. 部署方式
    • Grafana Cloud 是由 Grafana Labs 托管的雲端服務,使用者無需自行管理基礎設施,Grafana Labs 會處理所有的維護、升級和備份等工作。
    • Grafana Enterprise 是一個本地部署的版本,使用者可以在自己的基礎設施上安裝和管理 Grafana,適合需要完全控制數據和環境的企業。
  2. 管理與維護
    • Grafana Cloud 包含由 Grafana Labs 提供的管理和技術支持,減少了運維工作量,特別適合希望快速上手的團隊。
    • Grafana Enterprise 則需要企業自行管理,但同時也提供了專業支持和 SLA(服務級別協議)保障。
  3. 功能套件
    • Grafana Cloud 包含許多即用型集成功能,如自動擴展、預設資料源和儲存,還有特定的儲存和查詢配額。
    • Grafana Enterprise 除了包含 Grafana Cloud 的大部分功,提供更多的企業級功能,如高級安全性(如 SSO、LDAP 集成)、審計日誌、多租戶支援,以及進階的 Dashboard 和報告功能。
  4. 擴展和自定義
    • Grafana Cloud 限制了一些自定義和擴展的能力。
    • Grafana Enterprise 支援更廣泛的 extensions 和特定選項,適合有特定需求的企業。
  5. 成本結構
    • Grafana Cloud 通常採用基於使用量的定價模型。
    • Grafana Enterprise 通常採用基於節點或使用者數的許可證模型。
  6. 數據隱私和規範
    • Grafana Cloud 的數據儲存在 Grafana Labs 的基礎設施上,這可能會引起一些組織的數據隱私顧慮。
    • Grafana Enterprise 允許組織完全控制其數據,更容易滿足特定的規範要求。

筆者語錄
這是一篇關於 Grafana 的基本介紹,可以了解到這項工具並不是單純我們看到的圖表這樣簡單,背後依賴的是非常多的工具及服務,可以說是可觀測性工具的集散地。而筆者也希望可以透過無負擔的介紹,讓非經常性使用者也可以了解這個工具的偉大。


上一篇
靠 Grafana 吃飯的第一天 - 目錄
下一篇
靠 Grafana 吃飯的第三天 - Grafana 原始資料到視覺化的旅程
系列文
論前端工程師如何靠 Grafana 吃飯:從 Grafana App 到前端可觀測性13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
mikehsu0618
iT邦新手 2 級 ‧ 2024-09-16 12:19:42

有 Grafana 就推!/images/emoticon/emoticon08.gif

我要留言

立即登入留言