在 Grafana 中可以利用變數的設定讓 Dashboard 的圖表更有互動性。
Create Variable
點選編輯 Dashboard 畫面右上角的 Dashboard Setting
選擇 Setting 中 的 Variables
Variable Definition
Variable General:
-
- Name (變數名稱):之後在panel或link中使用到變數的變成名稱
- Type(得到變數的方式):常用包含從資料庫中取得變數清單(Query)、直接輸入可選變數清單(Custom)、讓使用者自己輸入變數(Text Box)、固定常數(Constant)
- Labels(標籤):畫面上顯示的變數名稱
- Hide(是否隱藏):可選擇只隱藏Labels或整個變數都隱藏
Options:依據General中Type輸入變數(在下一點中,簡單使用幾個Flux語法取得資料庫中的資料)
Selection options:使用者可以單選或多選
Example
情境:可以隨意查詢出 bucket 中所有的 measurement 和對應的 field
示範:連續三個變數,讓使用者可以依序選擇要關注的 Server 及此 Server 下相關的
Metric 選擇
Metric 選擇
設定bucket變數:取得變數的方式為定值
-
- Name: host
- Type: Constant
- Label: bucket
- Constant options: your_backet_name
設定host變數:取得變數的方式為查詢 tag values
-
- Name: host
- Type: Query
- Label: host name
- Selection options: Multi-values = true
Query Options:
import "influxdata/influxdb/v1"
v1.tagValues(
bucket: "${bucket}", ##利用前一項變數取得bucket名稱,bucket前後記得加雙引號
tag: "host",
start: -1d
)
Type: Query
- Name: measurement
設定measurement變數:取得變數的方式為查詢 tag
values(包含條件符合前一個變數host的資料) - 設定field變數:取得變數的方式為查詢 tag
values(包含條件符合前一個變數host及measurement的資料)
Name: field
Type: Query
Label: measurement
Selection options: Multi-values = true
Query Options:
import "influxdata/influxdb/v1"
v1.tagValues(
bucket: "${bucket}",
tag: "_field",
predicate: (r) => r.host =~ /${host:regex}/ and r._measurement =~ /${measurement:regex}/,
start: -1d
)