本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
查詢和條件
本文件主題是針對支援 Grafana 10.x 版的 Grafana 工作區所設計。
如需支援 Grafana 9.x 版的 Grafana 工作區,請參閱。在 Grafana 第 9 版中工作
如需支援 Grafana 8.x 版的 Grafana 工作區,請參閱。在 Grafana 第 8 版中工作
在 Grafana 中,查詢在從支援的資料來源 (包括 MySQL 和 PostgreSQL 等資料庫、Prometheus、InfluxDB 和石墨等時間序列資料庫,以及 Amazon、Azure 監視器和 Google 雲端監控等服務) 擷取和轉換資料方面扮演著至關重要的角色。 OpenSearch CloudWatch
如需有關支援資料來源的詳細資訊,請參閱資料來源和 Grafana 警示。
執行查詢的程序包括定義資料來源、指定要擷取的所需資料,以及套用相關篩選器或轉換。查詢語言或特定於所選資料來源的語法可用於建構這些查詢。
在「警示」中,您可以定義查詢以取得您要測量的資料,以及在警示規則觸發前必須符合的條件。
警示規則包含一或多個選取要測量之資料的查詢和運算式。
如需查詢和表示式的更多資訊,請參閱〈〉查詢和轉換資料。
資料來源查詢
在 Grafana 查詢可以以各種方式應用,這取決於所使用的數據源和查詢語言。每個資料來源的查詢編輯器都提供自訂的使用者介面,可協助您撰寫利用其獨特功能的查詢。
由於查詢語言之間的差異,每個資料來源查詢編輯器的外觀和功能都不同。根據您的資料來源,查詢編輯器可能會提供自動完成功能、量度名稱、變數建議或視覺化查詢建置介面。
一些常見的查詢元件類型包括:
指標或資料欄位 — 指定要擷取的特定指標或資料欄位,例如 CPU 使用率、網路流量或感應器讀數。
時間範圍 — 定義您要擷取資料的時間範圍,例如前一小時、特定日期或自訂時間範圍。
篩選器 — 套用篩選器以根據特定準則縮小資料的範圍,例如依特定標籤、主機或應用程式篩選資料。
彙總 — 對資料執行彙總,以計算指定時段內的平均值、總和或計數等指標。
分組 — 按特定維度或標籤對資料進行分組,以建立彙總檢視或劃分。
注意
Grafana 不支援使用範本變數警示查詢。如需更多資訊,請
表示式查詢
在 Grafana 中,運算式是用來對查詢的資料來源執行計算、轉換或彙總。它允許您根據數學運算,函數或邏輯表達式創建自定義指標或修改現有指標。
透過運算式查詢,使用者可以執行諸如計算兩個值之間的百分比變化、套用對數或三角函數之類的函數、彙總特定時間範圍或維度的資料,以及實作條件式邏輯來處理不同的案例等工作。
在警示中,您只能將運算式用於 Grafana 管理的警示規則。對於每個運算式,您可以從數學運算式中進行選擇、縮減和重新取樣運算式。這些規則稱為多維度規則,因為它們會為每個系列產生個別的警示。
您也可以使用傳統條件,此條件會建立警示規則,在符合條件時觸發單一警示。因此,即使符合多個系列的警示條件,Grafana 也只會傳送單一警示。
注意
經典條件存在主要是出於兼容性原因,如果可能的話應避免使用。
減少
將所選時間範圍內的時間序列值彙總為單一值。
Math (數學)
對時間序列和數字資料執行任意格式的數學函數/運算。可用於預先處理時間序列資料或定義數字資料的警示條件。
重新取樣
將時間範圍重新對齊一組新的時間戳記,這在比較來自不同資料來源的時間序列資料時非常有用,而時間戳記否則不會對齊。
Threshold
檢查是否有任何時間序列資料符合臨界值條件。
臨界值運算式可讓您比較兩個單一值。0
當條件為假,1
如果條件為真,它返回。以下是可用的臨界值函數:
-
在上面 (x > y)
-
如下所示 (x < y)
-
在範圍內 (x > y1 和 x < y2)
-
是否超出範圍 (x < y1 AND x > y2)
經典條件
檢查是否有任何時間序列資料符合警示條件。
注意
無論有多少時間序列符合條件,傳統條件運算式查詢永遠只會產生一個警示執行個體。經典條件存在主要是出於兼容性原因,如果可能的話應避免使用。
聚合
Grafana 警示提供下列彙總函式,可讓您進一步細化您的查詢。
這些函數僅適用於「減少」和「傳統」條件運算式。
函式 | 表達式 | 它做了什麼 |
---|---|---|
avg | 減少/經典 | 顯示值的平均值 |
min | 減少/經典 | 顯示最低值 |
max | 減少/經典 | 顯示最高值 |
sum | 減少/經典 | 顯示所有值的總和 |
count | 減少/經典 | 計算結果中的值的數量 |
last | 減少/經典 | 顯示最後一個值 |
median | 減少/經典 | 顯示中位數值 |
差異 | 傳統 | 顯示最新值和最舊值之間的差異 |
差異 | 傳統 | 顯示差異的絕對值 |
百分比差異 | 傳統 | 顯示最新值和最舊值之間的差異百分比值 |
百分比差 | 傳統 | 顯示百分比差異的絕對值 |
計數非空 | 傳統 | 顯示結果集中未顯示的值計數 null |
警示條件
警示條件是決定警示是否會觸發,視其產生的值而定的查詢或運算式。只能有一個條件可以決定警報的觸發。
定義查詢和/或運算式之後,請選擇其中一個作為警示規則條件。
當查詢的資料滿足定義的條件時,Grafana 會觸發關聯的警示,該警示可設定為透過各種管道 (例如電子郵件、Slack 或) 傳送通知。 PagerDuty通知會告知您符合條件的相關資訊,可讓您採取適當的行動或調查潛在問題。
依預設,新增的最後一個運算式會用作警示條件。
恢復閾值
若要減少拍攝警示的噪音,您可以設定與警示閾值不同的復原閾值。
當測量結果停留在警示臨界值條件周圍時,就會發生暫停警示,而且可能導致頻繁的狀態變更,導致產生過多的通知。
系統會根據特定時間間隔評估 Grafana 管理的警示規則。在每次評估期間,系統會根據警示規則中設定的臨界值檢查查詢結果。如果測量結果的值高於臨界值,就會觸發警示規則,並傳送通知。當值低於臨界值且此測量結果有作用中警示時,就會解決警示,並傳送另一個通知。
建立雜訊量度的警示規則可能會很棘手。也就是說,當量度的值持續高於和低於閾值時。這稱為拍打,並導致一系列觸發-解決-觸發通知和嘈雜的警報狀態歷史記錄。
例如,如果您有一個臨界值為 1000 毫秒的延遲警報,並且數字波動在 1000 左右(例如 980-> 1010-> 990-> 1020 等),那麼每個這些都將觸發通知。
要解決此問題,您可以設置(自定義)恢復閾值,這基本上意味著具有兩個閾值而不是一個閾值。超過第一個臨界值時會觸發警示,並且只有在超過第二個臨界值時才會解決。
例如,您可以設定 1000 毫秒的臨界值和 900 毫秒的復原臨界值。這樣,警報規則只有在 900 毫秒以下並減少拍打時才會停止觸發。