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

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

上一章我們設定了許多變數,現在來試著用用看吧!

How to Use Variable in Panels

  • 如何引用變數進flux查詢語法? 用${variable_name}引用變數值,例如:
from(bucket: "${bucket}")
  • 可以多選的變數怎麼辦呢?
    用正規表達式來模糊比對${variable_name:regex},例如:
filter(fn: (r) => r["_measurement"] =~ /${measurement:regex}/)
  • 利用所選的measurement和對應的field畫圖,將所有的資料畫圖flux查詢語法法如下:
from(bucket: "${bucket}")     |> range(start: v.timeRangeStart, stop: v.timeRangeStop)     |> filter(fn: (r) => r["host"] =~ /${host:regex}/)     |> filter(fn: (r) => r["_measurement"] =~ /${measurement:regex}/)     |> filter(fn: (r) => r["_field"] =~ /${field:regex}/)     |> rename(columns:{_measurement:"measurement"})     |> aggregateWindow(every: v.windowPeriod, fn: mean)

Use Variable to Duplicate Panels

當很多個host和很多measurement都在同一張圖時,很不容易看。這時候就可以利用variable另一個好用的地方,就是自動產生多張圖表!

  • 自動產生相同的圖:在編輯panel時,可在Panel options選擇重複panel的方式。
    • 選擇變數(會依照變數值有幾個而自動產生)
    • Horizontal:圖會橫向自動產生(同時要選擇橫排最多幾張)/ 
      Vertical:圖會往下自動產生
    • 建議在Panel Title加入Repeat的變數,讓表頭可以看出這張讀的變數值。
    • 查詢語法更新:將原來measurement的模糊比較filter改為判斷是否等於變數measurement,因為每個圖的查詢語法,將只會讀取該變數的多個值得其中一個;若變數有多個值,將會產生多個圖表對應相對應的變數值。
     from(bucket: "${bucket}")     |> range(start: v.timeRangeStart, stop: v.timeRangeStop)     |> filter(fn: (r) => r["host"] =~ /${host:regex}/)     |> filter(fn: (r) => r["_measurement"] == "${measurement}")  ##修改了這裡     |> filter(fn: (r) => r["_field"] =~ /${field:regex}/)     |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
  • 依類別自動產生相同類別的圖
    • 先新增Raw,並將相同類別的圖表放在Raw下面
    • 點選Raw的編輯
    • Repeat For選擇希望圖表的分類指標變數
    • 建議在Title加入Repeat的變數,讓Raw可以看出是讀取哪個變數值
    • 查詢語法更新:將原來host的模糊比較filter改為判斷是否等於變數host,因為每個圖的查詢語法,將只會讀取該變數的多個值得其中一個;若變數有多個值,將會產生多個圖表對應相對應的變數值。
    from(bucket: "${bucket}")     |> range(start: v.timeRangeStart, stop: v.timeRangeStop)     |> filter(fn: (r) => r["host"] == "${host}")                 ##修改了這裡     |> filter(fn: (r) => r["_measurement"] == "${measurement}")     |> filter(fn: (r) => r["_field"] =~ /${field:regex}/)     |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)

    快速跳轉目錄

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

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