iT邦幫忙

2024 iThome 鐵人賽

DAY 15
1
DevOps

Grafana Zero to Hero系列 第 15

Grafana Zero to Hero - Data Source:More Plugins!

  • 分享至 

  • xImage
  •  

前面介紹的 Data Source 大多是常見的搭配組合,但 Grafana 作為查詢的 Proxy、Agent,從技術層面上來說,只要查詢的目標有介面可以與之互動,Grafana 就能夠查詢「任何」並顯示任何資料。接著將介紹幾個有趣的 Data Source。

Google Sheet

當資料管理還沒有明確規格或需求頻繁變動時,Google Sheet 是一個常見且靈活的解決方案。Google Sheet 提供了 API 和 SDK,能夠讀取與寫入 Sheet 中的內容,Google Sheet Data Source 使用了 GO SDK 來讀取 Google Sheet 中的資料。

Google Sheet Vis

Google Sheet Data Source 的認證方式有 API KEYGoogle JWT FileConfigure a GCE Default Service Account 三種。其中,最簡單的是 API KEY,可讀取任何公開的 Google Sheet,而其他兩種方法則可讀取需要權限的 Google Sheet。

Google API KEY 的建立流程如下:

  1. 進入 Google Cloud 控制台
  2. 建立新的專案或選擇已有專案
  3. 在專案中選擇 API 和服務 後新增 Google Sheet API
  4. 回到 API 和服務 的憑證頁籤,建立一組新的 API 金鑰
  5. 將金鑰貼至 Google Sheet Data Source 設定中
  6. 使用 Google Sheet Data Source,將 Google Sheet 的 ID 貼上即可查詢。例如, https://docs.google.com/spreadsheets/d/1KwLQbrSsWKsPWjo7XgypywSGGNdsqzd7nLZVPzPkUlM/edit?usp=sharing 的 ID 為 1KwLQbrSsWKsPWjo7XgypywSGGNdsqzd7nLZVPzPkUlM

Step 1

Step 2

Step 3

Step 4

Step 5

Step 6

Step 7

API KEY
填入 API KEY

Sheet ID
查詢時再填入 Google Sheet ID

Redis

Redis 是現今大多數網路服務架構中使用的 in-memory Database,通常擔任快取 Server 的角色。Redis 的全名是 Remote Dictionary Server,它是由 Salvatore Sanfilippo 在 2009 年開源的專案,最初是為了應對網站訪客行為分析中的大量讀寫操作所開發的資料庫。

2009 和 2010 年,GitHub、Instagram 和 Twitter 開始使用 Redis,隨後 Redis 迅速成為流行的資料庫之一。在 Stack Overflow Survey 中,Redis 從 2017 到 2021 年連續五年被評為最受喜愛的資料庫。更多關於 Redis 和其作者的故事,推薦閱讀軟體考古學家的「Redis 與作者 antirez 的故事」。

目前,Redis 由 Redis Ltd. 團隊負責維護(前身為 Redis Labs),但在 2024 年 3 月,Redis 的授權從 BSD License 改為 Redis Source Available LicenseServer Side Public License,因此使用者需遵循新規範。社群中也出現了多個與 Redis 相容的開源專案,例如 ValkeyGarnet,提供了更多選擇。

安裝 Redis Data Source 後,Grafana 就可以使用 Redis 作為 Data Source。

Redis Data Source
Redis Data Source 設定

Redis Data Source Vis
Redis Data Source 查詢

SQLite

SQLite 是一種輕量且易於使用的資料庫,廣泛應用於嵌入式系統、手機應用程式及小型專案中,Grafana 預設使用的資料庫也是 SQLite。開發 SQLite 的 Dwayne Richard Hipp 在 2000 年時為通用動力(General Dynamics)旗下的造船子公司工作,當時正在建造美國海軍驅逐艦。當時艦上的系統使用 Informix 資料庫,然而 Informix 是以獨立服務的形式運行,當發生故障時,艦上系統會顯示「無法連線到資料庫」,導致操作中斷。

為了減少這類情況,Hipp 開始尋找一種無需伺服器即可操作的資料庫,但當時並無此類軟體。於是,Hipp 開始開發一款符合需求的資料庫,這就是 SQLite 的起源。儘管 SQLite 沒有被其工作團隊採用,但它因其輕巧精簡的特性迅速流行,受到商業廠商和社群的青睞。隨著 Android 和 iPhone 等智慧型手機的崛起,SQLite 變得更加廣泛流行。

安裝 SQLite Data Source 後,Grafana 可以將 SQLite 作為 Data Source。由於 SQLite 是單獨儲存為檔案,必須將該檔案放置在 Grafana 可讀取的位置,並透過檔案路徑進行設定。

SQLite Data Source
SQLite Data Source 設定

SQLite Data Source Vis
SQLite Data Source 查詢

Lab

範例程式碼:https://github.com/blueswen/grafana-zero-to-hero/tree/main/04-datasource/06-plugins

此 Lab 會建立

  1. Redis:Redis 服務
  2. Grafana:
    1. 查看預先建立好的 Google Sheet、Redis 與 MySQL Data Source 設定方式與 Visualization 示範 Dashboard

Quick Start

  1. 啟動所有服務

    docker-compose up -d
    
  2. 檢視服務

    1. Grafana: http://localhost:3000,登入帳號密碼為 admin/admin
      1. 點擊左上 Menu > Dashboards > Provision Dashboards 即可選擇預先建立的 Dashboard
  3. 關閉所有服務

    docker-compose down
    

參考資料

  1. Redis 與作者 antirez 的故事
  2. The Origin of SQLite, the World’s Most Widely-Used Database

上一篇
Grafana Zero to Hero - Data Source:Observability Platform
下一篇
Grafana Zero to Hero - Data Source:攫取萬物的 Infinity
系列文
Grafana Zero to Hero30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言