本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
變數類型
本文件主題是針對支援 Grafana 8.x 版的 Grafana 工作區所設計。
如需支援 Grafana 10.x 版的 Grafana 工作區,請參閱。在 Grafana 第 10 版工作
如需支援 Grafana 9.x 版的 Grafana 工作區,請參閱。在 Grafana 第 9 版中工作
Grafana 使用幾種類型的變量。
變數類型 | 描述 |
---|---|
Query | 查詢產生的值清單,例如度量名稱、伺服器名稱、感應器 ID、資料中心等。如需詳細資訊,請參閱 新增查詢變數。 |
自訂 | 使用逗號分隔清單手動定義變數選項。如需詳細資訊,請參閱 新增自訂變數。 |
Text box (文字方塊) | 使用可選預設值顯示文字輸入欄位。如需詳細資訊,請參閱 新增文字方塊變數。 |
常數 | 定義一個隱藏的常數。如需詳細資訊,請參閱 添加一個常量變量。 |
資料來源 | 快速變更整個儀表板的資料來源。如需詳細資訊,請參閱 新增資料來源變數。 |
Interval (間隔) | 間隔變量代表時間跨度。如需詳細資訊,請參閱 新增間隔變數。 |
特定篩選器 | 自動新增至資料來源的所有度量查詢的鍵/值篩選器 (InfluxDB、Prometheus)。 OpenSearch 如需詳細資訊,請參閱 新增臨機操作篩選器。 |
全域變數 | 可用於查詢編輯器中運算式的內建變數。如需詳細資訊,請參閱 全域變數。 |
链变量 | 變數查詢可以包含其他變數。如需詳細資訊,請參閱 链变量。 |
新增查詢變數
您可以使用查詢變數撰寫資料來源查詢,以傳回度量名稱、標籤值或索引鍵清單。例如,查詢變數可能會傳回伺服器名稱、感應器 ID 或資料中心的清單。變數值會隨著資料來源查詢動態擷取選項而變更。
查詢運算式可以包含對其他變數的參考,實際上也可以建立連結的變數。Grafana 會偵測到此變數,並在變數的其中一個連結變數變更時自動重新整理變數。
查詢運算式
每個資料來源的查詢運算式都不同。如需詳細資訊,請參閱資料來源的文件,網址為連線至資料來源。
輸入一般選項
若要輸入查詢變數的一般選項
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選取「查詢」。
-
(選擇性) 在 Label 中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,下拉式清單標籤將會是變數名稱。
-
選擇「隱藏」選項:
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。此為預設值。
-
標籤 — 變數下拉式清單僅顯示選取的變數值和向下箭頭。
-
變數 — 儀表板上不會顯示任何變數下拉式清單。
-
輸入查詢選項
若要輸入查詢變數的查詢選項
-
在 [資料來源] 清單中,選取查詢的目標資料來源。如需資料來源的詳細資訊,請參閱連線至資料來源。
-
在「重新整理」清單中,選取變數何時應更新選項。
-
永不-快取變數查詢,且不會更新值。如果值永遠不會改變,這很好,但是如果它們是動態的並且發生了很大變化,則會出現問題。
-
在儀表板載入上-每次載入儀表板時查詢資料來源。這會降低儀表板載入速度,因為必須先完成變數查詢,才能初始化儀表板。
-
在時間範圍變更時-在儀表板時間範圍變更時查詢資料來源。僅當您的變數選項查詢包含時間範圍篩選器或從屬於儀表板時間範圍時,才使用此選項。
-
-
在「查詢」欄位中,輸入查詢。
-
查詢欄位會根據您的資料來源而有所不同。某些資料來源具有自訂查詢編輯器。
-
如果您在單一輸入欄位查詢編輯器中需要更多空間,請在欄位右下角的行上暫停,然後向下拖曳以展開。
-
-
(選擇性) 在 Regex 欄位中,輸入 regex 運算式,以篩選或擷取資料來源查詢所傳回之名稱的特定部分。如需範例,請參閱 使用正則表達式過濾。
-
在「排序」清單中,選取要在下拉式清單中顯示之值的排序順序。預設選項「已停用」(Disabled) 表示將使用資料來源查詢傳回的選項順序。
-
(選擇性) 輸入選取選項。如需詳細資訊,請參閱 輸入變數選取選項。
-
在值的預覽中,Grafana 工作區會顯示目前變數值的清單。檢閱它們,以確保它們符合您的期望。
-
選擇 [新增] 以將變數新增至控制面板。
新增自訂變數
對不會變更的值使用自訂變數。這可能是數字,字符串,甚至其他變量。
例如,如果您的伺服器名稱或區域名稱沒有變更,您可以將它們建立為自訂變數,而不是查詢變數。因為它們不會變更,所以您可以在鏈結變數中使用它們,而不是其他查詢變數。這將減少鏈接變量更新時 Grafana 必須發送的查詢數量。若要取得有關鏈變數的更多資訊,請參閱〈〉链变量。
輸入一般選項
為自訂變數輸入查詢選項的步驟
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選擇「自訂」。
-
(選擇性) 在 Label 中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,下拉式清單標籤將會是變數名稱。
-
選擇「隱藏」選項:
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。此為預設值。
-
標籤-變數清單下拉式清單僅顯示選取的變數值和向下箭頭。
-
變數 — 儀表板上不會顯示任何變數下拉式清單。
-
輸入自訂選項
輸入自訂變數的自訂選項
-
在以逗號分隔的值清單中,以逗號分隔的清單中輸入此變數的值。您可以包含數字、字串、其他變數或以冒號分隔的索引鍵值配對。
-
(選擇性) 輸入選取選項。如需詳細資訊,請參閱 輸入變數選取選項。
-
在值的預覽中,Grafana 工作區會顯示目前變數值的清單。檢閱它們,以確保它們符合您的期望。
-
選擇 [新增] 以將變數新增至控制面板。
新增文字方塊變數
文字方塊變數會以選用預設值顯示文字輸入欄位。這是最有彈性的變數,因為您可以輸入任何值。如果您的量度具有高基數,或者想要同時更新管控面板中的多個面板,請使用此類型的變數。
輸入一般選項
為文字方塊變數輸入一般選項的步驟
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選取「文字」方塊。
-
(選擇性) 在 Label 中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,則下拉式清單標籤將成為變數名稱。
-
選擇「隱藏」選項:
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。此為預設值。
-
標籤 — 變數下拉式清單僅顯示選取的變數值和向下箭頭。
-
變數 — 儀表板上不會顯示任何變數下拉式清單。
-
輸入文字選項
為文字方塊變數輸入文字選項的步驟
-
(選擇性) 在「預設值」欄位中,選取變數的預設值。如果您沒有在此欄位中輸入任何內容,Grafana 會顯示一個空白文字方塊,您可以在其中輸入文字。
-
在值的預覽中,Grafana 會顯示目前變數值的清單。檢閱它們,以確保它們符合您的期望。
-
選擇 [新增] 以將變數新增至控制面板。
添加一個常量變量
若要定義隱藏的常數,請使用常數變數。常數變數對於您要共用的儀表板的度量路徑前置詞非常有用。匯出管控面板時,常數變數會轉換為匯入選項。
常量變量不靈活。每個常量變量只保持一個值。若要更新它,您必須更新變數設定。
當您有複雜的值必須包含在查詢中,但不想在每個查詢中重新輸入時,常數變數非常有用。例如,如果您有名為的伺服器路徑i-0b6a61efe2ab843gg
,您可以使用名為的變數來取代它$path_gg
。
輸入一般選項
輸入常數變數的一般選項
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選取「常數」。
-
(選擇性) 在 Label 中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,則下拉式清單標籤將成為變數名稱。
-
選擇「隱藏」選項:
-
變數 — 儀表板上不會顯示任何變數下拉式清單。此為預設值。
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。
-
標籤 — 變數下拉式清單僅顯示選取的變數值和向下箭頭。
-
輸入常數選項
輸入常數變數的常數選項
-
在「值」欄位中,輸入變數值。您可以輸入字母、數字和符號。如果您使用進階變數格式選項,您甚至可以使用萬用字元。如需詳細資訊,請參閱 進階變數格式選項。
-
在值的預覽中,Grafana 工作區會顯示目前的變數值。查看它,以確保它符合您的期望。
-
選擇 [新增] 以將變數新增至控制面板。
新增資料來源變數
若要快速變更整個儀表板的資料來源,您可以使用資料來源變數。如果您有資料來源的多個執行個體 (也許在不同的環境中),它們就很有用。
輸入一般選項
輸入資料來源變數的一般選項
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選取「資料來源」。
-
(選擇性) 在 Label 中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,下拉式清單標籤將會是變數名稱。
-
選擇「隱藏」選項:
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。此為預設值。
-
標籤 — 變數下拉式清單僅顯示選取的變數值和向下箭頭。
-
變數 — 儀表板上不會顯示任何變數下拉式清單。
-
輸入資料來源選項
若要輸入資料來源變數的資料來源選項
新增間隔變數
使用間隔變數來表示時間範圍,例如1m
、1h
、1d
。您可以將它們視為儀表板範圍的命令 group-by-time 。間隔變數會變更資料在視覺效果中的分組方式。您也可以使用「自動」(Auto) 選項來傳回每個時間範圍的設定數目的資料點。
您可以使用間隔變數做為依時間 (針對 InfluxDB)、日期長條圖間隔 (for OpenSearch) 分組的參數,或做為摘要函數參數 (針對 Graphite)。
輸入一般選項
輸入間隔變數的一般選項
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選取「間隔」。
-
(選擇性) 在標籤中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,下拉式清單標籤將會是變數名稱。
-
選擇「隱藏」選項:
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。此為預設值。
-
標籤 — 變數下拉式清單僅顯示選取的變數值和向下箭頭。
-
變數 — 儀表板上不會顯示任何變數下拉式清單。
-
輸入間隔選項
輸入間隔變數的間隔選項
-
在「值」欄位中,輸入您要顯示在變數下拉式清單中的時間範圍間隔。支援下列時間單位:
s (seconds)
m (minutes)
h (hours)
、d (days)
、w (weeks)
、M (months)
、和y (years)
。您也可以接受或編輯預設值:1m,10m,30m,1h,6h,12h,1d,7d,14d,30d
。 -
(選擇性) 如果您要將選項新增至清單,請開啟「自動
auto
選項」。使用此選項可指定目前時間範圍應分割多少次,以計算目前的auto
時間範圍。如果您將其開啟,則會出現另外兩個選項:-
步數 — 選取將分割目前時間範圍以計算值的次數,類似於「最大資料點查詢」選項。例如,如果目前可見的時間範圍為 30 分鐘,則
auto
間隔會將資料分組為 30 個 1 分鐘的增量。預設值為 30 個步驟。 -
最小間隔 — 最小臨界值,低於此臨界值的步數間隔不會分割時間。若要繼續 30 分鐘的範例,如果最小間隔設定為
2m
,Grafana 會將資料分組為 15 分鐘的增量。
-
-
在值的預覽中,Grafana 會顯示目前變數值的清單。檢閱它們,以確保它們符合您的期望。
-
選擇 [新增] 以將變數新增至控制面板。
間隔變數範例
在石墨函數myinterval
中使用模板變量的示例:
summarize($myinterval, sum, false)
一個更複雜的石墨例子:
groupByNode(summarize(movingAverage(apps.$app.$server.counters.requests.count, 5), '$interval', 'sum', false), 2, 'sum')
新增臨機操作篩選器
您可以使用一次性或臨機操作篩選器來新增索引鍵/值篩選器,這些篩選器會自動新增至使用指定資料來源的所有量度查詢。與其他變數不同,您不會在查詢中使用一次性篩選器。相反地,您可以使用它們為現有查詢撰寫篩選器。
注意
附註:一次性 (或特定) 篩選器變數僅適用於 InfluxDB、Prometheus 和資料來源。 OpenSearch
輸入一般選項
若要輸入特定篩選器的一般選項
-
導覽至您要為其建立變數的儀表板,然後選擇頁面頂端的儀表板設定 (齒輪) 圖示。
-
在「變數」標籤上,選擇「新增」。
-
輸入變數的「名稱」。
-
在「類型」清單中,選取「特定篩選器」。
-
(選擇性) 在 Label 中,輸入變數下拉式清單的顯示名稱。如果您沒有輸入顯示名稱,下拉式清單標籤將會是變數名稱。
-
選擇隱藏選項:
-
未選取 (空白) — 變數下拉式清單會顯示變數名稱或標籤值。此為預設值。
-
標籤 — 變數下拉式清單僅顯示選取的變數值和向下箭頭。
-
變數 — 儀表板上不會顯示任何變數下拉式清單。
-
輸入選項
若要輸入特定篩選器的選項
-
在「資料來源」清單中,選取目標資料來源。如需資料來源的詳細資訊,請參閱連線至資料來源。
-
選擇 [新增] 以將變數新增至控制面板。
建立臨機操作篩選器
臨機操作過濾器是可用的最複雜和靈活的變量選項之一。此變數不是一般的變數選項清單,而是可以建構全儀表板的臨機操作查詢。以此方式套用的篩選會套用至管控面板上的所有嵌板。
链变量
鏈接變量,也稱為鏈接變量或嵌套變量,是在其變量查詢中具有一個或多個其他變量的查詢變量。本節說明鏈結變數的運作方式,並提供使用鏈結變數之範例儀表板的連結。
鏈接變量查詢對於每個數據源都不同,但所有數據源的前提都是相同的。您可以在任何支援這些查詢的資料來源中使用鏈結變數查詢。
您可以構建複雜的鏈接模板儀表板,深度為 5 或 10 個級別。從技術上講,您可以進入的深度或複雜度沒有限制,但是您擁有的鏈接越多,查詢負載就越大。
最佳做法和提示
下列作法可讓您的儀表板和變數更易於使用。
創建新的鏈接變量
-
鏈接變量創建父子從屬關係。您可以將它們設想為梯子或樹。
-
創建新的鏈接變量的最快方法是複製要基於新變量的變量。在變數清單中,選擇變數項目右側的「複製變數」圖示以建立複本。然後,您可以將其添加到父變量的查詢中。
-
您以此方式建立的新鏈結變數會顯示在清單底部。若要為清單指定邏輯順序,請將變數拖曳至清單中的其他位置。
可變順序
若要變更儀表板變數清單中變數的順序,請選擇每個項目右側的向上和向下箭頭。Grafana 工作區會根據此清單從左至右列出變數下拉式清單,在最左邊的清單頂端顯示變數。
-
在其子變量之前列出頂部沒有依賴關係的變量。
-
每個變量應遵循它所依賴的變量。
-
UI 不會指出哪些變數具有相依關係。按照邏輯順序列出變量,以使最終用戶(和您自己)更清晰。
複雜性考量
變數中的相依層次越多,變更變數後更新儀表板所需的時間就越長。
例如,如果您有一系列四個連結的變數 (國家/地區、地區、伺服器、量度),而您變更了根變數值 (國家/地區),則 Grafana 工作區必須先對所有相依變數執行查詢,才能更新儀表板中的視覺效果。
全域變數
Grafana 具有全域內建變數,可在查詢編輯器中的運算式中使用。本主題會依字母順序列出並加以定義。這些變數在查詢、管控面板連結、面板連結和資料連結中非常有用。
$ __ 儀表板
此變數是目前儀表板的名稱。
$ __ 從和 $ __ 到
Grafana 有兩個內置的時間範圍變量:$__from
和。$__to
它們目前總是在默認情況下插值為 epoch 毫秒,但您可以控制日期格式。
語法 | 示例結果 | 描述 |
---|---|---|
${__from}
|
1594671549254 | 毫秒紀元 |
${__from:date}
|
2020-07-13T 20:09.254 | 沒有參數,預設值為 ISO 8601/RFC 3339 |
${__from:date:iso}
|
2020-07-13T 20:09.254 | 異 8601/RFC 3339 |
${__from:date:seconds}
|
1594671549 | 秒纪元 |
${__from:date:YYYY-MM}
|
2020-07 | 任何自訂資料格式。如需詳細資訊,請參閱顯示 |
上面的語法也適${__to}
用於。
您也可以在 URL 中使用此變數。例如,若要將使用者傳送至顯示從 6 小時前到現在的時間範圍的儀表板,請使用下列 URL:https://play.grafana.org/d/000000012/grafana-play-home? 視景面板 = 2 組織 = 1? 從 = 現在 6H 到 = 現在
$ __ 間隔
您可以使用$__interval
變數做為參數,依時間分組 (針對 InfluxDB、我自己、Postgres、MSSQL)、日期長條圖間隔 (用於 OpenSearch),或做為摘要函數參數 (針對石墨)。
Grafana 工作區會自動計算可用於在查詢中依時間分組的間隔。當資料點數量超過圖表上可顯示的數量時,可以透過較大的間隔分組來提高查詢效率。例如,當查看 3 個月的數據時,將 1 天分組比 10 秒更有效。該圖看起來相同,並且查詢會更快。使用時間範圍和圖形的寬度 (像素數) 來計算。$__interval
近似計算:(from - to) / resolution
例如,當時間範圍為 1 小時且圖形為全螢幕時,可能會將間隔計算為2m
;點會以 2 分鐘的間隔進行分組。如果時間範圍為 6 個月,且圖表為全螢幕,則間隔可能是1d
(1 天);點按天分組。
在 InfluxDB 資料來源中,舊版變數$interval
是相同的變數。請改用 $__interval
。
InfluxDB 和 OpenSearch 資料來源具有用於硬編碼間隔或使用語法-> 設定$__interval
變數的最小限制的Group by time
interval
欄位。>
>10m
$ __ 間隔 _ 毫秒
該變量是以毫秒為單位的$__interval
變量,而不是時間間隔格式化的字符串。例如,如果$__interval
是,20m
那麼$__interval_ms
是1200000
.
$ __ 名稱
此變數只能在「單一統計」面板中使用,且可用於「選項」頁籤上的字首或字尾欄位中。該變量將被替換為系列名稱或別名。
$ __組織
此變數是目前組織的 ID。變數${__org.name}
是目前組織的名稱。
$ __ 用戶
變數${__user.id}
是目前使用者的 ID。該變量${__user.login}
是當前用戶的登錄句柄。變數${__user.email}
是目前使用者的電子郵件。
$ __ 範圍
此變數目前僅支援 Prometheus 資料來源。此變數表示目前儀表板的範圍。它是由計算to - from
。它具有毫秒和第二表示稱為$__range_ms
和$__range_s
。
$ 時間過濾器或 $ __ 時間過濾器
$timeFilter
變數會傳回目前選取的時間範圍做為運算式。例如,時間範圍間隔Last 7
days
運算式為time > now() - 7d
。
此變數可用於數個位置,包括:
-
資料庫資料來源的 WHERE 子句。Grafana 在查詢編輯器模式下自動將其添加到 InfluxDB 查詢中。您可以在文字編輯器模式下手動新增:
WHERE $timeFilter
。 -
Azure 監視器資料來源中的記錄分析查詢。
-
SQL 查詢中的 MySQL 查詢, 郵件, 和 MSSQL.
-
該
$__timeFilter
變量在 MySQL 數據源中使用。