Grafana|How to setup variable makes dashboard more flexible – Part I

2025-05-12 更新

在 Grafana 中可以利用變數的設定讓 Dashboard 的圖表更有互動性。

Create Variable

點選編輯 Dashboard 畫面右上角的 Dashboard Setting

選擇 Setting 中 的 Variables

grafana setting

Variable Definition

Variable General:

    • Name (變數名稱):之後在panel或link中使用到變數的變成名稱
    • Type(得到變數的方式):常用包含從資料庫中取得變數清單(Query)、直接輸入可選變數清單(Custom)、讓使用者自己輸入變數(Text Box)、固定常數(Constant)
    • Labels(標籤):畫面上顯示的變數名稱
    • Hide(是否隱藏):可選擇只隱藏Labels或整個變數都隱藏

Options:依據General中Type輸入變數(在下一點中,簡單使用幾個Flux語法取得資料庫中的資料)

Selection options:使用者可以單選或多選

grafana variable setting

Example

情境:可以隨意查詢出 bucket 中所有的 measurement 和對應的 field
示範:連續三個變數,讓使用者可以依序選擇要關注的 Server 及此 Server 下相關的
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
)
快速跳轉目錄

✦ 集先鋒 Bimap – 企業建置高速穩定的海量日誌分析平台✦

集中不同的結構化資料和非結構化日誌,並進行關聯性的大數據整合,客製化儀表版、自訂事件告警、機器學習等等,以滿足各種大數據的應用場景和解決方案。