作為一個前端工程師,Grafana 這個名詞可能偶爾在技術文章中輕掃而過,基本上沒有機會存在我們的深層記憶中。又或者經過 IT、後端或 DevOps 座位時瞥過螢幕上黑底並有很多橘色 dashboard 的畫面,但不知道那其實就是我們這系列所使用到的 Grafana。
若不是身為 DevOps 的隊友每日開口閉口皆是 Grafana,我可能不會接觸這個平台,更不會知道這個工具也有前端工程師可以發揮的地方。但知己知彼,在牽起 Grafana 與前端的紅線之前,必須先了解 Grafana 這工具的底細,才能更深入地與我們熟悉的領域進行媒合。
在官方文件的簡介說道:
Grafana 是一款開源軟體,能夠查詢、可視化、告警和探索儲存在任何地方的度量數據(Metrics)、日誌(Log)和追蹤(Trace)資料。Grafana 的插件(Plugin)框架也支援多種數據來源,如 NoSQL/SQL 資料庫、工單工具(如 Jira 或 ServiceNow)以及 CI/CD 工具(如 GitLab)。
所以更精確來說 Grafana 是一個『視覺化工具』,但也只是這項工具眾多的功能之一。看過上述官方的介紹,想必對於前端或是完全未接觸監控工具的開發者而言,依舊是霧裡看花。
舉個例子:當服務出問題時,大家的第一個反應通常是『去看 Log!』,透過查看 Log 的錯誤訊息找到問題的源頭,才能接下來進行修復。當服務只有簡單的前後端和資料庫時,很容易就能找到出錯的服務或事件。但當組織逐漸壯大,達到微服務的規模時,要找出那個錯誤點就變得沒那麼簡單了!這時,我們可能需要查看多個服務的 Log,並且追蹤請求在不同服務之間的流轉情況,這樣才能確定問題的真正源頭。
因此,像 Grafana 這樣的工具就變得非常重要,因為它能夠集中展示和分析來自多個服務和數據源的資料,幫助我們更快地找出問題並解決它。以下比較一家電商公司需要監控網站流量、使用者行為、效能指標等的情況下,是否使用 Grafana 的差異:
Grafana 是 2014 年由瑞典工程師 Torkel Ödegaard 創立,作為 ElasticSearch 可視化工具的替代品。主要是用來收集和儲存隨時間變化的數據,比如伺服器的 CPU 使用率、記憶體使用量等。想像一下,應用程式會不斷產生各種數據,這些數據隨著時間變化,比如每秒鐘伺服器的響應時間。Grafana 的目的是把這些數據存起來,並且用漂亮的圖表展示出來,方便監控應用程式的健康狀況或是不同時間點的效能表現。
💡 TIP
Elasticsearch 是一個全文搜索引擎,使用分散式架構(將數據和計算任務分佈到多個伺服器上以提高效能和可靠性的架構),擅長處理大型數據集以及即時的資料分析,並提供快速檢索和複雜查詢能力。適用例如:日誌(Log)分析、效能指標資料、產品描述或交易記錄等使用者行為資料。
演變至今約十年的歷程,Grafana 已經非當時單純的數據可視化工具,更能夠無縫整合和呈現來自各種來源的數據,並有非常豐富的圖表、儀表板和其他多種視覺呈現方式,甚至有客製化的功能。另外也提供完整的告警系統,依據開發者設定的條件和數據閥值發送告警。
同時 Grafana 的所有者 Grafana Lab 也是一個致力於開源的組職,發展出了三種平台模式:OSS(Open Source Software)、Cloud 和 Enterprise。
Grafana OSS(Open Source Software)是 Grafana 的開源版本,讓全球使用者可以免費使用並參與 Grafana 的開發和貢獻中。並且通過 Grafana OSS 社群的活躍,發展出豐富的插件和資源,讓工具可以高客製化的擴展,以滿足不同的需求。其中開源的項目包括 Grafana 本身,以及 Loki、Tempo、Mimir、Faro 和 Pyroscope 等等專案。
💡 TIP
Prometheus 是一個專門用來監控應用程式和伺服器效能的工具。可以自動收集各種指標數據(如 CPU 使用率、記憶體使用率、請求延遲等),並儲存這些數據,以便後續查詢和分析。另外 Prometheus 提供一個強大的查詢語言(PromQL),能夠靈活地檢索和分析數據。
Grafana Cloud 是一個由 Grafana Labs 提供的托管服務,它不僅包含了 Grafana OSS(開源軟件)所提供的全部功能,還將其與額外的雲端服務和工具相結合。使用者只需在 Grafana Cloud 中設定 Data source,就可以開始建立 Dashboard 和查詢指標資料。非常適合受限於自行架設可觀測性工具的個人或企業使用者。Grafana Cloud 簡化了這些功能的設置和管理,提供了更方便的使用體驗,讓使用者能夠更專注於數據分析和決策,提升業務運營效率。
適合對象:
Grafana Enterprise 是由 Grafana Labs 提供的商業增強版本,同樣建立在 Grafana OSS 基礎上,並增加了許多企業級功能和支援。其中包括專為企業設計的附加功能,如角色基於訪問控制(RBAC)、更深入的 Data source 整合、高級查詢功能和專業技術支援。這些功能適合需要更高級別安全性、合規性和支援的企業使用者。同時此版本也成為他們的盈利模式。
Grafana Cloud 和 Grafana Enterprise 之間的主要差別在於部署方式、管理維護、和功能套件:
筆者語錄
這是一篇關於 Grafana 的基本介紹,可以了解到這項工具並不是單純我們看到的圖表這樣簡單,背後依賴的是非常多的工具及服務,可以說是可觀測性工具的集散地。而筆者也希望可以透過無負擔的介紹,讓非經常性使用者也可以了解這個工具的偉大。