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

瀏覽人次: 1685
2022-11-30 更新

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


Create Variable

  1. 點選編輯 Dashboard 畫面右上角的 Dashboard Setting
  2. 選擇 Setting 中 的 Variables

grafana setting

    Variable Definition

    1. Variable General:

      • Name (變數名稱):之後在panel或link中使用到變數的變成名稱

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

    2. Options:依據General中Type輸入變數(在下一點中,簡單使用幾個Flux語法取得資料庫中的資料)
    3. Selection options:使用者可以單選或多選

    grafana variable setting

      Example

      情境:可以隨意查詢出 bucket 中所有的 measurement 和對應的 field


      示範:連續三個變數,讓使用者可以依序選擇要關注的 Server 及此 Server 下相關的
      Metric 選擇


      1. 設定bucket變數:取得變數的方式為定值


        • Name: host

        • Type: Constant

        • Label: bucket

        • Constant options: your_backet_name


      2. 設定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
        )
      3. 設定measurement變數:取得變數的方式為查詢 tag
        values(包含條件符合前一個變數host的資料)


        • Name: measurement

        • Type: Query

        • Label: measurement

        • Selection options: Multi-values = true
        • Query Options:
        import "influxdata/influxdb/v1"
        v1.tagValues(
           bucket: "${bucket}",
           tag: "_measurement",
           predicate: (r) => r.host =~ /${host:regex}/, ##由於host可以為複選,因此用正規表達式
           start: -1d
        )
      4. 設定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 – 企業建置高速穩定的海量日誌分析平台✦

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