iT邦幫忙

2024 iThome 鐵人賽

DAY 1
3
DevOps

Grafana Zero to Hero系列 第 1

Grafana Zero to Hero - Grafana: The Big Tent

  • 分享至 

  • xImage
  •  

開篇詞

Grafana 經過十年的發展,從單純的折線圖繪製,進化為支援多種資料來源的資料視覺化與監控首選開源工具。對於初學者來說,重點在於如何使用 Grafana 快速解決問題;對於有經驗的使用者而言,如何充分利用並精進 Grafana 的各種功能仍然充滿挑戰。

這次的分享將從基礎操作到進階應用,全面涵蓋 Dashboard 設計最佳實踐、Alerting 及 Grafana 管理,並包含完整的 Lab 供動手應用。希望幫助大家對 Grafana 有更深入的了解,擴展更多對 Grafana 應用的想像。

在知名架構師左耳朵耗子─陳皓的文章「如何做一个有质量的技术分享」中,他提到:「分享是學習知識最難的方式。與觀眾相比,分享者反而是從中獲益最多的人。」作為 Grafana 的長期使用者,也希望自己可以在這次的分享從頭並且更深入地學習 Grafana。

這次也會比照去年的系列文「時光之鏡:透視過去、現在與未來的 Observability」,同時分享周邊的工具與各種背景小故事。這些延伸是我覺得 DevOps 最有趣的地方,在學習時可以淺嚐即止,可以深入研究,也能不停往外延伸拓展知識邊界,能夠在痛苦中快樂地學習著 XD。去年的可觀測性系列文已經出版成冊,除了原有內容更新外還新增了前端的可觀測性,如果想瞭解更多可觀測性歡迎選購《可觀測性入門指南》。

系列大綱

基礎篇

  1. Grafana Zero to Hero - Grafana: The Big Tent
    • Grafana 簡介
  2. Grafana Zero to Hero - Put Your Hands On!
    • 基礎操作教學

進階篇

  1. Dashboard
    1. Grafana Zero to Hero - Dashboard 與 Monitoring 的最佳實踐
    2. Grafana Zero to Hero - Visualization:Show me the number!
      • Dashboard、Panel 介紹
      • 數值監控 Time Series、Stat、Gauge、Bar Gauge
    3. Grafana Zero to Hero - Visualization:What’s the pattern?
      • 狀態變化 State Timeline、Status History
      • 資料分布 Bar Chart、Pie Chart、Histogram、Heatmap
    4. Grafana Zero to Hero - Visualization:數據多樣性
      • Table、Log、Node Graph、Traces、Flame Graph
    5. Grafana Zero to Hero - Visualization:不只是圖表?!
      • Text、GeoMap、Canvas
    6. Grafana Zero to Hero - Dashboard:資料 Transform
      • Transform
    7. Grafana Zero to Hero - Dashboard:讓 Variable 組合出無限可能
      • Variable
      • Dashboard、Panel 進階應用
  2. Data Source
    1. Grafana Zero to Hero - Data Source:從設定到探索
      • Data Source 介紹
      • TestData
    2. Grafana Zero to Hero - Data Source:Prometheus
      • Prometheus
    3. Grafana Zero to Hero - Data Source:Relational Database
      • PostgreSQL、MySQL
    4. Grafana Zero to Hero - Data Source:資料多樣性
      • Logs、Traces、Profiling
    5. Grafana Zero to Hero - Data Source:Observability Platform
      • Observability 與 Data Source 關聯
    6. Grafana Zero to Hero - Data Source:More Plugins!
      • Google Sheet、Redis、SQLite
    7. Grafana Zero to Hero - Data Source:攫取萬物的 Infinity
      • Infinity
  3. Plugin System
    1. Grafana Zero to Hero - Plugin System:突破 Dashboard 限制
  4. Alerting
    1. Grafana Zero to Hero - Alerting:24 小時全天候監控
      • Alerting 介紹
    2. Grafana Zero to Hero - Alerting:強化告警通知
      • 通知機制介紹
    3. Grafana Zero to Hero - Notification:隨時隨地接收告警
      • Slack、Line、Telegram
    4. Grafana Zero to Hero - Notification:事件驅動
      • Kafak、Webhook
    5. Grafana Zero to Hero - Grafana OnCall:從 Alerting 邁向 IRM

管理篇

  1. Grafana Zero to Hero - Management:使用者管理
  2. Grafana Zero to Hero - Management:自我監控與高可用
  3. Grafana Zero to Hero - Management:Infrastructure as Code
    • Grafana API、Terraform
  4. Grafana Zero to Hero - Management:Dashboard as Code
    • Jsonnet、Grizzly

應用篇

  1. Grafana Zero to Hero - Use Case:Gatus
  2. Grafana Zero to Hero - Use Case:Service Performance Monitoring
  3. Grafana Zero to Hero - Use Case:Business Suite 解開束縛

總結篇

  1. Grafana Zero to Hero - 總結:Hero's Journey

適合對象

  1. 初學者:完全不會 Grafana 的人,適合閱讀基礎篇,學習 Grafana 基礎運作邏輯與操作
  2. 進階使用者
    1. 設計 Dashboard 的人,適合閱讀進階篇的 Dashboard 與 Data Source 章節,了解如何視覺化資料
    2. 監控系統、服務的人,適合閱讀進階篇的 Alerting 章節,了解 Alerting 的各種細節
  3. 管理員:管理 Grafana 的人,適合閱讀管理篇,讓 Grafana 易於管理並有完善的權限控管

程式碼

所有範例程式碼將會放置於 https://github.com/blueswen/grafana-zero-to-hero 上供參考與使用。

Grafana: The Big Tent

Grafana Labs' big tent strategy
象徵兼容各種資料源的 Big Tent,圖片來源:Grafana overview deck

時間先回到 2013 年 Grafana 建立的前夕,當時 Grafana 的作者 Torkel Ödegaard 還在 eBay 旗下的北歐五國最大網拍平台 Tradera 工作擔任工程師,那時 Torkel 已經導入 Graphite 收集時間序列指標用於監控分散式系統,並逐漸擴展到商業指標跟系統異動影響監控等。但隨著使用場景增加,Graphite 內建的視覺化工具難以建立易用的 Dashboard 的痛點讓 Torkel 開始思考有沒有更好的解決方案。

Kibana 是當時另一個社群常用的視覺化工具,主要搭配 ElasticSearch 一起作為日誌管理方案,能夠針對 Log 產出各式各樣的 Dashboard,但只支援 ElasticSearch 作為資料來源。不過好在 Kibana 是開源專案,於是在 2013 年的 12 月 Torkel 花了幾天的時間 fork Kibana 後移除不需要的部分,接上 Graphite 作為資料來源,開發出了初版的 Grafana,而 Grafana 這個名字就是從 [Graph]ite 結合 Kib[ana] 而來。

Kibana on 2013
Kibana 在 2013 年的畫面,圖片來源:Elastic Blog

Grafana v1.0
2014 年 1 月發佈的 Grafana v1.0 畫面,圖片來源:torkelo/grafana

隨著使用者的增加,不同資料來源的需求開始被提出,除了 Graphite 外 Grafana 也開始支援其他不同的資料來源,例如 InfluxDBPrometheus 等。Prometheus 是目前廣受歡迎的監控和告警工具之一,主要用於收集和處理指標,它源於 2012 年音樂分享平台 SoundCloud 的內部需求,並在一開始就以開源專案的形式發佈,並逐漸累積人氣。Prometheus 的設計理念也深獲 Kubernetes 團隊喜愛,所以在早期就支援以 Prometheus 進行監控,隨著 Kubernetes 的熱潮大大增加了 Prometheus 的可見度和使用率,也讓能與 Prometheus 有良好互動的 Grafana 收穫了為數不少的使用者。

2014 年 Torkel 開始專職開發 Grafana,並和 Raj DuttAnthony Woods 成立了 RainTank 提供以 Grafana 為主的 Monitoring SaaS 平台並推廣 Grafana,但 Grafana 本身仍舊是開源的專案供使用。當時團隊的目標是 Democratize Metrics 民主化指標,讓大家都可以自由取用 Metrics,繪製出自己心中想要的呈現方式。並開始逐步發展發展出 Big Tent 的策略,透過 Plugin System 讓大家都可以使用自己想要的視覺化方式跟資料源,不侷限於官方提供的工具,進一步擴大了使用者。

RainTank
RainTank 網站,圖片來源:The Story of Grafana | Episode 3: Open (Source) for Business | Grafana Documentary

Democratize Metrics
Grafana 早期使用的 Democratize Metrics 標語,圖片來源:Democratize Metrics: What Does It Mean?

經過多年的發展後 RainTank 在 2017 年 Rebranding 成現在大家熟知的 Grafana Labs,並逐漸從 Monitoring 擴展到 Observability 可觀測性的領域,而產品線也隨之多元化發展,發佈了儲存 Log 的 Loki、儲存 Prometheus Metrics 的 Mimir、儲存 Traces 的 Tempo 等工具。近期也積極透過收購擴張,例如用於 Profiling 的 Pyroscope 、負載測試的 K6 等,但仍秉持著 Grafana Labs 核心的開源精神,這些專案都還是保有開源版本。

LGTM
由 Loki(L)、Grafana(G)、Tempo(T)、Mimir(M)組成的 LGTM 圖案,跟 PR 常用的 LGTM(Looks Good To Me)相同,也象徵系統一切運作如常 Looks Good To Me,圖片來源:Grafana Labs GitHub

在商業上,Grafana Labs 2024 年獲得一筆新的融資後估值達到了 60 億美金,2023 年度的收入也超過了 1.5 億美金,預計 2024 年度可以達到 2.5 億美金,2024 年也再度入選 Forbes Cloud 100 名列 23。雖然跟其他已經上市的監控領域與可觀測性領域公司相比仍偏小,但 Grafana Labs 是相對擁抱開源的一家公司,並積極貢獻開源專案。近年來 Grafana Labs 也開始在社群積極推廣各類技術與應用,並舉辦各種活動等等,還從 Grafana 的第一版恐龍 Logo 發想出了代表的吉祥物 Grot,現在在各種活動都可以看到它的身影。

First version logo and Grot
Grafana 的第一版 Logo 與 Grot,圖片來源:Grafana GitHub RepositoryGrafana Golden Grot Awards

Grafana 應用

Grafana 最常見的應用是監控機器與服務,例如 Kubernetes 的開源監控方案大多是直接上一套 Prometheus 跟 Grafana 的組合;Linux Server 的監控也有歷史悠久經無數前輩打磨的 Node Exporter 能直接搭配使用。

Kubernetes Dashboard
Kubernetes 監控組合 kube-prometheus-stack 內建 Dashboard

Node Exporter Dashboard
Node Exporter Dashboard,圖片來源:Node Exporter Full

開源與高度客製性也廣受各種非傳統軟體工程領域親睞,例如:產線設備監控、太空任務監控。

IOT Dashboard
產現設備監控,圖片來源:Industrial IoT visualization: Why United Manufacturing Hub chose Grafana to power its IIoT platform

Intuitive Machines-1 Lunar Landing Dashboard
NASA 的月球登陸任務監控,圖片來源:Intuitive Machines-1 Lunar Landing (Official NASA Broadcast)

Japan's SLIM Moon Lander Dashboard
日本 JAXA 的月球登陸任務監控,圖片來源:How Japan's space agency used Grafana to monitor its first moon landing in real time

個人化的應用也有很多有趣的案例,例如:通勤路線監控、小孩房間打掃紀錄、智慧家庭等等。

通勤路線監控
通勤路線監控,圖片來源:Monitoring your morning commute with Grafana: the story of a Golden Grot Awards winner

小孩房間打掃紀錄
搭配 Slack 紀錄的小孩房間打掃紀錄,圖片來源:How to monitor your kids' chores: An introduction to Grafana-powered parenting

Home Assistant
監控家中各種 IOT 設備,圖片來源:How to set up home automation: A beginner's guide with Grafana Cloud and Home Assistant

Grafana 相關活動

為了推廣 Grafana 與旗下各類產品,Grafana Labs 會舉辦各種活動:

  1. Conference
    1. GrafanaCon:每年四月舉辦,聚焦 Grafana Labs 各種專案的新功能與應用案例,Grafana 一年一次的主版本的更新內容也會在這時候公布。
    2. ObservabilityCON:每年九月舉辦,涵蓋所有跟 Observability 相關的議題。
  2. Webinar:線上舉辦的各種專案使用教學、最佳實踐介紹,相同的主題也會固定重講,以配合新的功能或 UI,不用擔心會看到過舊的教學。另外也會配合時區舉辦不同場次,可以線上參加參與問答。
  3. Grafana Office Hours:官方 YouTube 頻道每次一小時的直播節目,邀請各領域的講者討論跟 Observability 有關的專案、應用或是教學。
  4. Meetup:由 Grafana Labs 與在地社群共同舉辦的 Meetup,有些會上傳錄影或在官方 YouTube 直播。

雖然在台灣幾乎沒有官方活動,但大多內容都會有錄影上傳在官方 YouTube 或是官網,並且都可以免費觀看,很適合作為新知吸收或是發想的來源。

小結

從 2014 年首次釋出到現在 Grafana 已經走過了第一個十年,這十年間監控的需求與多樣性只增不減,衍伸出的 Observability 可觀測性也逐漸成為大家關注的焦點,一直持續在這領域耕耘的 Grafana 絕對會是你的開源可觀測性工具首選,接下來讓我們一起來學習 Grafana 吧!

參考資料

  1. Torkel Ödegaard Linkdein
  2. The (Mostly) Complete History of Grafana UX
  3. Grafana 2.0, the future, and raintank
  4. The Grafana documentary: The first 10 years
  5. Prometheus: The Documentary
  6. Cloud Startup Grafana Labs In Talks To Raise New Funding At $6 Billion Valuation

下一篇
Grafana Zero to Hero - Put Your Hands On!
系列文
Grafana Zero to Hero30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言