在Grafana中使用Variables

其實在公司內部使用Grafana完全是‘被逼的’。剛開始使用的時候完全是因爲懶!也有考慮儘快的輸出一些指標而不是走非常漫長的一個前、後、數據端的結伴開發。

ok,迴歸正題。

Grafana的Variables(變量)

Grafana提供了Variables來實現與面板交互的功能,並且能夠實現動態的刷新面板。不需要進行使用SQL或者其他的方式實現修改面板。變量位於Dashboard的頂部,當變量發生改變時Dashboard會進行動態的變更。而所有相關依賴與變量的指標都會動態的發生改變。

Variables定義完成後我們能夠直接通過Dashboard上的Variables進行動態的篩選Dashboard顯示。例如常見的zabbix,即可直接通過定義的變量來變更服務器 實現動態的變更Dashboard中的數值。或以上圖片通過變更應用ID來實現刷新Dashboard中的相關指標.

Variables定義

Grafana是一種面向數據監控的場景,定義變量是爲了更加方便的實現我們的數據展現。例如常見的我們zabbix管理着10臺服務器。那麼我們就可以通過定義服務器名稱的方式進行動態的刷新Dashbaord指標。畢竟每臺服務器的指標都是一致的。所以,變量就是在該Dashboard中表示爲全局變量。

本次我們通過分析不同版本的在線人數與其他指標來進行變量的定義。

首先創建一個新的Dashboard,然後點擊右上角的設置。進入Variables菜單。

當前是我已經建好的一個變量。

可以點擊new進行新建。

Type是變量的類型,當前版本一共由七種組成:IntervalQueryDatasourceCustomConstantAd hoc filtersText box
這些變量類型通常在一個Dashboard中可以組合進行使用。例如有一萬臺機器,我們在觀測指標的時候通過前綴來篩選或者通過模糊來搜索的方式就可以通過Text box先輸入幾個關鍵詞再通過mysql去檢索來縮小範圍等。

上圖使用的是Query的方式檢索ElasticSearch中的關鍵詞來篩選版本信息。

{"find": "terms", "field": "clientversion"}

當preview出現結果時即證明該變量設置成功,已經可以使用。

  • Refresh表示變量的刷新時間,有三種時間選擇
    • Never:設置後用不刷新
    • On Dashboard Load:Dashboard重新加載的時候刷新一次。
    • On Time Range Change:跟隨Dashboard的刷新時間進行刷新。Dashboard右上角。
  • Selection Options
    • Multi-value: 多選
    • Include All option:是否包含所有(會增加一個ALL的變量)

使用變量

當前我們已經通過設置了一個版本號的變量。那麼就可以直接在查詢的時候引用該變量來實現刷新Dashboard圖表。
首先新建一個圖表。基於自己的業務選擇相關數據源與圖表類型等。 我們之前創建的variables叫做clientVersion,直接可以通過&clientVersion進行變量的引用。例如:

這樣,我們在選擇不同的變量值時圖片就會基於不同的變量值進行刷新了。我們也就能夠基於版本的不同來獲取指標的變化。

當然我們還可以通過設置更多的指標來實現更加精細的功能。例如我們當前版本來查看不同的地區指標信息。那麼就可以再創建一個地區指標。

如上,我們就可以基於版本號再查詢該版本號下的地區信息來實現更細粒度的Dashboard圖表變更。
常用於分析某個版本在某個地區的使用指標情況,例如 不同區域的網絡狀況,請求失敗情況等。

通過合理的配置指標,我們能夠實現非常多的業務需求。我們爲相同的指標分配了不同的維度。例如用戶請求成功與失敗可以分爲不同的地區,不同的機房,不同的版本等。那麼相同的版本又可以分爲不同的地區,不同的機房。相同的機房也可以分爲不同的版本,不同的地區用戶接入等等。

Variable在Dashboard查詢、Title或Description上均可進行引用。來實現可視化數值、內容的動態變更。

本文分享自微信公衆號 - 指尖數蟲(zhijianshuchong)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章