前面介紹的 Data Source 大多是常見的搭配組合,但 Grafana 作為查詢的 Proxy、Agent,從技術層面上來說,只要查詢的目標有介面可以與之互動,Grafana 就能夠查詢「任何」並顯示任何資料。接著將介紹幾個有趣的 Data Source。
當資料管理還沒有明確規格或需求頻繁變動時,Google Sheet 是一個常見且靈活的解決方案。Google Sheet 提供了 API 和 SDK,能夠讀取與寫入 Sheet 中的內容,Google Sheet Data Source 使用了 GO SDK 來讀取 Google Sheet 中的資料。
Google Sheet Data Source 的認證方式有 API KEY、Google JWT File、Configure a GCE Default Service Account 三種。其中,最簡單的是 API KEY,可讀取任何公開的 Google Sheet,而其他兩種方法則可讀取需要權限的 Google Sheet。
Google API KEY 的建立流程如下:
API 和服務
後新增 Google Sheet APIAPI 和服務
的憑證頁籤,建立一組新的 API 金鑰https://docs.google.com/spreadsheets/d/1KwLQbrSsWKsPWjo7XgypywSGGNdsqzd7nLZVPzPkUlM/edit?usp=sharing
的 ID 為 1KwLQbrSsWKsPWjo7XgypywSGGNdsqzd7nLZVPzPkUlM
填入 API KEY
查詢時再填入 Google Sheet ID
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 License 與 Server Side Public License,因此使用者需遵循新規範。社群中也出現了多個與 Redis 相容的開源專案,例如 Valkey 和 Garnet,提供了更多選擇。
安裝 Redis Data Source 後,Grafana 就可以使用 Redis 作為 Data Source。
Redis Data Source 設定
Redis Data Source 查詢
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 查詢
範例程式碼:https://github.com/blueswen/grafana-zero-to-hero/tree/main/04-datasource/06-plugins
此 Lab 會建立
啟動所有服務
docker-compose up -d
檢視服務
admin/admin
關閉所有服務
docker-compose down