iT邦幫忙

2024 iThome 鐵人賽

DAY 2
3
DevOps

後 Grafana 時代的自我修養系列 第 2

後 Grafana 時代的第二天 - Grafana 入門介紹

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20240916/201495623ZSJZpLN9x.png

概述

如果講到 Grafana 這家以開源為精神指標的公司,我想很多人第一個反應都跟我一樣,就是那個「可以把資料變成好看圖表的 Dashboard 工具」吧。直到逐漸地接近真相後,我才發現之前的自己好傻好天真。

Grafana 不僅僅是一個可視化圖表工具,他更像是一個給資料專家盡情發揮的畫布,表達出隱藏在資料背後的真正含義。現在,我們將會正式進入 Grafana 篇章,帶領大家認識 Grafana 為什麼可以成為開源可視化工具中數一數二的選擇,以及其如何透過豐富的儀表板資料,貫穿我們所有介紹的監控工具核心。

Grafana 的起源

https://ithelp.ithome.com.tw/upload/images/20240916/20149562fPoyTd2ujV.png

Grafana 的故事始於 2013 年,當時作者 Torkel Ödegaard,因為對當下的 Graphite 監控使用介面感到不滿,後來他發現了現在依然熱門的 ELK Stack 可視化工具 Kibana,並分叉了它,他的目標是創建一個能夠整合多種資料源,且具有高度客製化的可視化界面。於是Grafana 便誕生了,並迅速獲得了開源社群的熱烈迴響。

在短短的幾年內,Grafana 不僅僅提供了與 Prometheus 的深度整合,還與多種資料源如 Elasticsearch、InfluxDB、Logz.io 等實現了無縫的接軌。這使 Grafana 不只是一個資料視覺化工具,而是一個全方位的監控解決方案平台。

但 Grafana 的真正強大之處不止於此。其獨特的插件架構,允許開發者自行擴展其功能,使其成為一個真正「監控的核心所在」。不論是資料庫管理員、開發者,或是 IT 系統工程師,都能在 Grafana 中找到專屬於自己的監控視角。

隨著時間的推進,Grafana 的功能和生態系不斷豐富。從最初的資料視覺化工具,到現在的監控巨頭,Grafana 的旅程證明了一件事:有時,一個好的工具,真的能夠改變整個行業的規則和格局。

你以為的 Grafana

對大多數人來說,當他們想到 Grafana,腦海中浮現的往往只是一個將 API 的資料拉取下來,再用以展示各種質感十足的 Dashboard 工具。這樣的認知大概率來自 Grafana 初期給人的印象或是大多數人接觸到的僅是其表層功能。但這樣的認知只涵蓋了冰山一角,因為事實上,Grafana 早已跨足並深入到可觀測性的各個角落,打造出一整套完整的產品線,它不再僅僅是一個展示工具,而是整個可觀測性宇宙的核心。

https://ithelp.ithome.com.tw/upload/images/20240916/20149562FfSmUXTZPN.png

事實上的 Grafana

在 2023 年的今天,Grafana 不再只是一個簡單的可視化介面工具。事實上,透過其高度相容的插件,它已經轉型為資料的樞紐,連接了多種監控和日誌系統。不僅如此,Grafana Lab 更進一步開發和收購了多種領域的可觀測性工具,與 Grafana 進行深度整合,打造出一套現象級別的開源可觀測性宇宙。這一切的目的都是為了幫助開發者和維運人員更輕鬆地解讀各種資料源。

身為一家堅持開源理念的公司,Grafana Lab 發展出了 OSS(Open Source Software)、Cloud 和 Enterprise 這三種平台模式。OSS 版本讓全球使用者可以免費使用或者參與到 Grafana 的各個專案中。同時,對於那些不想或沒有能力自行架設可觀測性工具的企業,Grafana Lab 提供專業而成熟的企業級解決方案,這也成為他們的盈利模式。所得的資源再回頭投入開源專案的開發,形成了一個取之於開源,回饋於開源的良性循環。

隨著使用在大型企業中的普及,Grafana Labs 於 2016 年後推出了兩款付費產品:Grafana Enterprise,提供企業級組織所需的功能;2017 年, Grafana Cloud 是一個支持 Graphite 的完全託管指標平台。

https://ithelp.ithome.com.tw/upload/images/20240916/20149562tOMMmQmerA.png

Grafana的核心功能和架構

Grafana 提供豐富的圖表庫,涵蓋時序資料圖、長條圖、圓餅圖等多種類型,能夠靈活展示各種指標資料。使用者可以通過拖放操作來自訂儀表板,實現對資料的即時監控和分析。自 Grafana 11 版本起,其前端全面採用 React 構建,取代了 AngularJS,而後端則主要使用 Go 語言開發,確保了系統的高效能與靈活性。

Grafana Dashboard

這裡需要區分兩個概念:

  • 儀表板(dashboard): 一個或多個資料面板形成的集合。
  • 面板(panel):組成儀表板的其中一個圖表。

資料的可視化主要依賴於 Panel 來呈現。每種 Panel 都有其特定的強項,用於凸顯不同方面的資料呈現。要搭建一個有效的可視化圖表,我們首先需要對各種 Panel 有深入的認識。這樣,在儀表板的設計過程中,我們才能選擇最合適的選擇,並最大化地呈現其可視化效果,而在看到結果前,過程都會經過三層結構傳遞資料:Data Source & Plugin、Query、和 Transformation。

https://ithelp.ithome.com.tw/upload/images/20240916/20149562jfMjyqcjzh.png

Data Source & Plugin

Grafana 中的 Data Source 搭配 Plugin 可以理解為包含資料的各種來源,在現今的當下,Grafana 提供了 155 個多種資料源供我們使用,基本上已經涵蓋所有最主流的資料來源。無論是 SQL 資料庫、Grafana Loki、Grafana Mimir 還是基於 JSON 的 API,都可以作為資料源,甚至包括簡單的 CSV 文件。要進行儀表板的可視化,首要之務是選定一個合適的資料源。

儘管每種資料源都有其特有的結構和查詢方式,剛入門的我們可能會感到有些混淆,但 Grafana 允許我們在同一儀表板上集成和展示多個資料源的資料,讓我們能夠更整體地掌握和分析資訊。

https://ithelp.ithome.com.tw/upload/images/20240916/201495621X9BUCl8Tf.png

Query

查詢的功能就如同一扇門,幫助我們進入廣袤的資料海洋,並從中挑選出那些最有價值的資料。這些查詢不僅使資料可視化變得更加高效,而且能夠更精確地回答我們對系統和操作流程的疑問。拿一家運營著線上商店的公司來說,它可能渴望了解有多少客戶在將產品添加到購物車時碰到了問題。通過針對購物車功能的訪問指標進行查詢,能夠展示每秒鐘訪問此功能的用戶數量。

當與資料源互動時,非常重要的一點是要明白:每一個資料源都有它自己的專屬查詢語言。例如,Prometheus 資料源採用的是PromQL,LogQL適用於日誌資料的查詢,而特定的資料庫則可能採用SQL作為查詢語言。而在Grafana中,每一片可視化的領域,都建立在一系列的查詢基礎之上。

以下是一幅與 Prometheus 資料源相關的查詢編輯器示意圖。你會看到一個名為 container_cpu_usage_seconds_total 的查詢,這個查詢是使用PromQL所撰寫,它主要是為了取得某一特定指標的資料:

https://ithelp.ithome.com.tw/upload/images/20240916/20149562nZVBOhVBy1.png

Transformation

在某些情境下,原生查詢出來的資料格式可能不完全符合我們的可視化需求。這時我們可以使用「Transformation」功能來調整這些資料。隨著我們使用場景越來越複雜以及多變時,他一定是我們的好幫手。

以下是一些常見的使用轉換的場景:

  • 當您需要組合兩個字段,例如把「名字」和「姓氏」結合成「全名」。
  • 當您有全為文字的 CSV 資料,但需要轉換其中的字段類型,如將文字轉為日期或數字。
  • 當您希望進行過濾、連接、合併或其他類似 SQL 的操作,而這些操作可能不受您的資料源或查詢語言支持。

在面板編輯頁中,這個功能位於「Transform」頁籤下,我們只要選擇需要的類型,然後進行設定,甚至可以串接多種操作。

https://ithelp.ithome.com.tw/upload/images/20240916/201495622QpQEGL3j5.png

Panel

在完成資料的 Query 和 Transformation 後,這些資料將登上 Grafana 顯示成我們熟悉的樣子,也就是所謂的面板(Panel)。面板就像一個精心設計的展示,它不僅將資料轉化為生動的可視化效果,還為我們提供一套工具,能夠隨心所欲地調整和操控展示的内容。

面板的設置允許您決定如何展現這些資料。舉例來說,我們可以透過面板右上方的選單,選擇希望的資料展示形式,無論是條狀圖、餅狀圖或是熱點圖,皆可隨您心意。每種可視化形式都有其獨特的設定選項,讓您能夠深度定制每個細節。

面板中也嵌入了您用於指定資料可視化的查詢部分。如下所示,一幅正在編輯中的表格面板圖像揭示了其內部的結構:底部展示著查詢細節,而右側則列出了面板的各項設定選項。透過這個圖像,我們可以清楚地看到資料源、插件、查詢和面板是如何完美融合,攜手合作展現出最佳的資料視覺效果。

https://ithelp.ithome.com.tw/upload/images/20240916/20149562ipecvx8mFl.png

探討 Grafana Panels

在資料可視化領域,資料的呈現形式至關重要。不同的圖表對相同的資料集會有完全不同的解讀和呈現方式,而選擇合適的圖表則是進行有效資料分析的第一步。了解各種圖表的特點與適用場景,可以幫助我們更好地在資料大盤中展現資料。

  1. 依資料格式區分:
    • 柱狀圖、折線圖和餅狀圖通常需求時間序列的資料。它們用於表示在特定時間範疇內的單一或多種類型資料的變動趨勢或比例。
    • 狀態圖、表格和儀錶盤不嚴格要求時間序列的資料。狀態圖和儀錶盤常常用於展示總覽型資料,如速度、溫度和完成度等;而表格則適合展現多維度或複雜資料。
  2. 依使用意向區分:
    • 資料比對:柱狀圖和折線圖都很適合,它們能清晰展示資料的變動和比較。
    • 資料佔比:圓餅圖、儀錶盤和狀態圖可以清楚展示資料的佔比。
    • 趨勢追踪:折線圖和面積圖可以呈現資料的變化趨勢。
    • 資料分佈:圓餅圖和散點圖更適合。
  3. 其他特色:
    • 文字型圖表:用於展示文字信息,提供了高度的客製化選項,得益於Markdown和HTML的靈活性。
    • 表格:特別適用於展示日誌或多維度資料,如報表形式,且支援排序等功能,方便資料比較。

Grafana 已經提供我們十分豐富的圖表選擇,透過深入了解 Grafana 的面板和圖表功能,我們可以更有效地選擇和利用這些工具進行資料可視化,從而更好地解讀和呈現資料。

https://ithelp.ithome.com.tw/upload/images/20240916/2014956256x8Nb4SDZ.png

Grafana Explore 探索介面

在資料可視化和監控領域中,建立和健全的查詢到確切資料是一個首要任務,無論是想要了解系統性能還是系統監控日誌,有效的查詢都是不可或缺的,而 Grafana 的 Explore 功能區塊就是為此而生:

  • 查詢中心:探索功能放大了查詢的核心,使其脫離了儀表板的背景,讓使用者能夠更專注於資料查詢。這使得查詢和資料探索過程更直觀、靈活。
  • 迭代和優化:在開發過程中,我們往往需要進行多次的嘗試和調整以獲得所需的查詢結果。探索模式提供了一個理想的環境,允許使用者迭代查詢,直至獲得滿意的結果。
  • 資料源概覽:Grafana 支援多種資料源,從時間序列資料庫到日誌資料源,探索功能使得在不同資料源間快速切換、查看和比較成為可能。
  • 結果預覽:當您進行查詢時,可以立即在探索界面上看到查詢結果,無需跳轉到儀表板或其他介面。這使得檢查和驗證查詢的正確性變得非常方便。
  • 圖表整合:一旦您在探索模式中構建了滿意的查詢,就可以輕鬆地將其加入到圖表中,以進一步進行資料的可視化和分享。

https://ithelp.ithome.com.tw/upload/images/20240916/20149562F5TvJjc8bp.png

Grafana Alerting 告警系統

在雲端服務架構中,監控和警報系統是確保服務穩定運行和快速應對潛在問題的關鍵。Grafana 提供了一套強大的監控與警報機制,允許用戶為各種指標設置閾值,並在這些閾值被觸發時自動發送通知。值得一提的是,Grafana Alerting 的資料來源不僅僅局限於 Prometheus 或傳統的監控指標,它還支持來自多種資料源的整合,如 Loki、Cloud Watch、Elasticsearch 等,這使得它成為一個更靈活且強大的工具。在後面的章節中我們將深入探討如何在 Grafana 中設置監控與警報,以及配置通知管道,以實現即時監控和快速響應。

https://ithelp.ithome.com.tw/upload/images/20240916/201495624kYfuxSzdA.png

結語

在本章節中,我們概覽了 Grafana 作為一個多功能的資料視覺化平台,如何支持多種「Data Source」、「Plugin」並提供強大的「Dashboard」、「Explore」和「Alerting」等功能。而 Grafana 作為前端可視化介面的佼佼者,Grafana 起初也許沒有人會預想到它能成為整個監控領域的核心之一。然而,Grafana 的成功在於它總能準確找到自己在監控領域的定位,並解決使用者的痛點。通過利用開源社群的力量壯大自己,並在建立起商業事業群的同時,將開發量能回饋到開源專案中,Grafana 成就了開源社群中少有的雙贏典範,完美詮釋了「取之開源,回饋開源」的精神。


上一篇
後 Grafana 時代的第一天 - 總不能永遠只有 LGTM
下一篇
後 Grafana 時代的第三天 - 探討 Grafana 大規模團隊治理與挑戰
系列文
後 Grafana 時代的自我修養31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言