grafana-----Templating


 

模板允許更多的互動和動態的儀表板。可以將變量用在度量查詢中,不必硬編碼諸如服務器、應用程序和傳感器名稱之類的東西。變量顯示在儀表板頂部的下拉式選擇框中。這些下拉菜單可以很容易地改變在你的儀表板顯示的數據。如下

What is a variable?(什么是變量)

變量是值的占位符。可以在metric查詢和panel title中使用變量。因此,當您更改值時,使用儀表板頂部的下拉菜單,面板的metric查詢將更改為反映新值。

Interpolation(插入;篡改;添寫寫法)

Panel titles 和 metric queries可以參考使用了兩種不同的語法變量:

$<varname> Example: apps.frontend.$server.requests.count
[[varname]] Example: apps.frontend.[[server]].requests.count

為什么有兩種方法?第一種語法更易於閱讀和書寫,但不允許您在詞的中間使用變量。在表達式中使用第二語法my.server[[serverNumber]].count。

在將查詢發送到您的數據源之前,查詢將被內插,這意味着變量將被替換為當前值。在插值過程中,變量值可能會被轉義以符合查詢語言的語法以及它的位置

Variable options(變量的選擇)

在dashboard的頂部,變量可作為下拉選擇框。它有現有的值和設定的選項。選項是您可以從中選擇的值集。

Adding a variable(添加變量)

你添加的變量通過Dashboard菜單()>Templating。這將打開一個變量列表和一個創建新變量的新按鈕。

Basic variable options(基本的變量選項)

variable

Name:變量的名稱,這是您在Metric查詢中引用變量時使用的名稱。必須是唯一的,不包含空白。

Type:定義變量類型

  Query:這個變量類型允許您編寫一個數據源查詢,該查詢通常返回一個 metric names, tag values or keys。例如,返回erver names, sensor ids or data centers列表的查詢。

  interval:interval值。這個變量可以代表時間跨度。不要按時間或日期直方圖間隔硬編碼一個組,使用這種類型的變量。

  Datasource:此類型允許您快速更改整個儀表板的數據源。如果在不同環境中有多個數據源實例,則非常有用。

  Custom:使用逗號分隔列表手動定義變量選項。

  Constant:定義一個隱藏常數。有用的metric路徑前綴的dashboards,你想分享。在dashboard export,期間,常量變量將作為一個重要的選項。

  Ad hoc filters:非常特殊類型的變量,只對某些數據源,InfluxDB及Elasticsearch目前。它允許您添加將自動添加到使用指定數據源的所有metric查詢的key/value 過濾器

 

Label:此變量的下拉列表的名稱。

Hide:隱藏下拉框的選項。

  Lable:隱藏變量名稱,但下拉框顯示

  variable:隱藏整個變量,不顯示在頂部下拉框。

Query options

這種變量類型是最強大和復雜的,因為它可以使用數據源查詢動態地獲取其選項。

Data source:查詢的數據源對象。數據庫名

Refresh:控制何時更新變量選項列表(下拉列表中的值)。

  On Dashboard Load:會使整個dashboard加載變慢,需要使變量查詢完成,dashboard才初始化。

  On Time Range Change:如果變量選項查詢包含time range篩選器或依賴於dashboard time range,則僅將其設置為實時范圍更改。

Query:數據源的查詢表達式。

Regex:Regex to filter or capture specific parts of the names return by your data source query. Optional.

Sort:定義下拉列表中選項的排序順序。

  Disabled:禁用意味着數據源查詢返回的選項順序將被使用。

Query expressions 

每個數據源的查詢表達式是不同的。

在metric 查詢中,不必硬編碼諸如server, application and sensor name 之類的東西,而是可以在它們的位置使用變量。
變量顯示在dashboard頂部的下拉式選擇框中。這些下拉菜單就可以很容易地改變在你的儀表板顯示的數據。 

需要注意的一點是,查詢表達式可以包含對其他變量的引用,實際上創建鏈接變量。當它的一個含有變量的變化,Grafana將檢測到並自動刷新一個變量時,

Selection Options

 

multi-value:如果啟用,該變量將支持同時選擇多個選項。

include All option:添加一個特殊的所有選項的值包括所有選項。ALL

Custon all value:By default the All value will include all options in combined expression. This can become very long and can have performance problems. Many times it can be better to specify a custom all value, like a wildcard regex. To make it possible to have custom regex, globs or lucene syntax in the Custom all value option it is never escaped so you will have to think avbout what is a valid value for your data source.

 

Value groups/tags

Tags query:返回數據源查詢中tags的列表

Tag values query:應該返回指定tags的值列表的數據源查詢。在查詢中使用$tag引用當前選中的標記。

 

Interval variables

使用區間類型創建一個變量,代表一個時間跨度(如1m,1h、1d)。還有一個特殊auto Option選項,將根據當前時間范圍的變化。您可以指定多少個時間范圍來划分,計算當時auto時間間隔。
這個變量的類型是有用的group by time 參數(用於InfluxDB),日期直方圖區間(Elasticsearch)或作為一個匯總函數參數(for Graphite)。
使用模板中的變量myinterval,graphite功能型區間的例子:

summarize($myinterval, sum, false)


Global Built-in Variables(全司內置變量)

Grafana有全局內置變量,可以在查詢編輯器中使用。

1、The $__interval Variable

這個$__intervall變量類似於上面描述的auto間隔變量。它可以作為一個參數給group by time(for influxdb)、日期直方圖間隔(for Elasticsearch)或作為一個匯總函數參數(for Graphite)進行分組。
Grafana自動計算出一個時間間隔,可以在查詢中使用時間。如果有更多的數據點可以在圖上顯示,那么可以通過更大的區間分組來提高查詢的效率。當查看3個月的數據時,按1天組比10s組(group by 1 day than by 10s)更有效率,而且這個圖表看起來是一樣的,而且查詢的速度會更快。$__interval是使用時間范圍和圖的寬度來計算的(像素的數量)。
近似計算:(from - to) / resolution
例如,當時間范圍是1小時,圖是全屏時,那么間隔可能被計算為200萬-點以2分鍾的間隔分組。如果時間范圍是6個月,圖是全屏,那么間隔可能是1d(1天)-點以天為分組。

在InfluxDB數據源,遺留變量$interval是相同的變量。$__interval可以用來代替。

該InfluxDB和Elasticsearch數據源的Group by time interval fields,使用硬編碼的間隔或或者設置$interval變量的最小值(by using the > syntax -> >10m)。

The $__interval_ms Variable

這個是 $__interval的毫秒變量(而不是一個時間間隔的格式化字符串)。例如, $__interval是20分,那么$__interval_ms是1200000。

 

2、The $timeFilter or $__timeFilter Variable

$timefilter變量返回當前選擇的時間范圍為表達。例如,時間范圍區間的Last 7 days 表達時間> now() 7D。
這是用在WHERE子句中的InfluxDB數據源。Grafana查詢時,查詢編輯器模式InfluxDB會自動添加。它必須在文本編輯器模式下手動添加:WHERE $timeFilter。
$timeFilter在MySQL數據源中使用。

3、The $__name Variable

This variable is only available in the Singlestat panel and can be used in the prefix or suffix fields on the Options tab. The variable will be replaced with the series name or alias.

4、$col

別名字段中使用$col,只顯示您分組的標記中feild()里的名

 

5、$tag_字段名

別名字段中使用$tag_字段名,只顯示您分組的標記中標簽字段

 

 

Repeating Panels(重復panels)

 模板變量可以非常有用地在整個dashboard上動態地更改查詢。如果你想讓Grafana動態創建新的panels或 rows基於您選擇您可以使用重復的特征值。

如果你的變量選擇 Multi-value或Include all value 選項,你可以選擇一個pane或一個row作為可以為Grafana這個row重復行每一個選定的值。在面板edit模式下的“gengeral”選項卡下找到此選項。選擇要重復的變量和最小跨度(min span)。最小跨度將Grafana控制面板最小寬度(如果你有很多選擇的值)。Grafana會自動調整各重復面板的寬度使整個row排滿。當前,不能將其他行的面板與重復面板混合。

只對第一個面板(原始模板)進行更改。要使更改生效,您需要觸發動態儀表板重新構建的所有面板。您可以通過更改變量值(那個是重復的基本)來完成這項工作,也可以重新加載儀表板。

Repeating Rows

此選項要求您打開 Row Options。在左側行懸停以觸發行菜單,在這個菜單中單擊Row Options。這將打開Row Options視圖。在這里,您可以找到一個重復的下拉列表,在這里您可以選擇要重復的變量。

 

URL state

Variable values are always synced to the URL using the syntax var-<varname>=value.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM