建立和管理 Grafana 提醒規則 - Amazon Managed Grafana

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立和管理 Grafana 提醒規則

本文件主題專為支援 Grafana 8.x 版的 Grafana 工作區而設計。

如需支援 Grafana 10.x 版的 Grafana 工作區,請參閱使用 Grafana 第 10 版

如需支援 Grafana 9.x 版的 Grafana 工作區,請參閱使用 Grafana 第 9 版

提醒規則是一組評估條件,可判斷是否啟動提醒。規則包含一或多個查詢和表達式、條件、評估頻率,以及選擇性滿足條件的持續時間。

當查詢和表達式選取要評估的資料集時,條件會設定警示必須達到或超過的閾值,以建立警示。間隔指定警示規則的評估頻率。設定時,持續時間表示條件必須滿足的時間長度。這些規則也可以定義缺少資料的提醒行為。

下列各節說明建立和管理不同類型的 Grafana 警示規則。

建立 Cortex 或 Loki 受管提醒規則

使用 Grafana,您可以為外部 Cortex 或 Loki 執行個體建立提醒規則。

注意

Cortex 是 Amazon Managed Service for Prometheus 和 Prometheus 資料來源所使用的時間序列資料庫。

先決條件

  • 確認您具有 Prometheus 資料來源的寫入許可。否則,您無法建立或更新 Cortex 受管提醒規則。

  • 對於 Cortex 和 Loki 資料來源,請設定各自的服務來啟用尺規 API。

    • Lokilocal規則儲存類型,預設為 Loki 資料來源,僅支援檢視規則。若要編輯規則,請設定其他儲存類型之一。

    • Cortex – 使用舊版/api/prom字首,而不是 /prometheus。Prometheus 資料來源同時支援 Cortex 和 Prometheus,Grafana 預期查詢 API 和尺規 API 都位於相同的 URL 下。您無法為尺規 API 提供單獨的 URL。

注意

如果您不想管理特定 Loki 或 Prometheus 資料來源的提醒規則,請前往其設定,並清除透過提醒 UI 管理提醒核取方塊。

新增 Cortex 或 Loki 受管提醒規則
  1. 在 Grafana 主控台的 Grafana 選單中,選擇提醒 (鈴鐺) 圖示,以開啟列出現有提醒的提醒頁面。

  2. 選擇新提醒規則

  3. 步驟 1 中,新增規則名稱、類型和儲存位置,如下所示:

    • 規則名稱中,新增描述性名稱。此名稱會顯示在提醒規則清單中。它也是從此規則建立的每個提醒執行個體的alertname標籤。

    • 規則類型下拉式清單中,選取 Cortex/Loki 受管提醒

    • 選取資料來源下拉式清單中,選取 Prometheus 或 Loki 資料來源。

    • 命名空間下拉式清單中,選取現有的規則命名空間。否則,請選擇新增並輸入名稱以建立名稱。命名空間可以包含一或多個規則群組,而且只有組織用途。如需詳細資訊,請參閱Cortex 或 Loki 規則群組和命名空間

    • 群組下拉式清單中,選取所選命名空間內的現有群組。否則,請選擇新增並輸入名稱以建立名稱。新建立的規則會附加到 群組的結尾。群組內的規則會以固定間隔依序執行,且評估時間相同。

  4. 步驟 2 中,新增要評估的查詢。

    此值可以是 PromQL 或 LogQL 表達式。如果評估結果具有至少一個值大於 0 的序列,則規則會啟動提醒。會為每個系列建立提醒。

  5. 步驟 3 中,新增條件。

    在條件的文字方塊中,指定條件在警示啟動之前必須為 true 的持續時間。如果您指定 5m,則在啟動提醒之前,條件必須為 true 五分鐘。

    注意

    滿足條件後,警示會進入 Pending 狀態。如果條件在指定的持續時間內保持作用中,警示會轉換為 Firing 狀態。如果不再符合,則會還原為 Normal 狀態。

  6. 步驟 4 中,新增與規則相關聯的其他中繼資料。

    • 新增描述和摘要以自訂提醒訊息。使用 中的準則提醒規則的註釋和標籤

    • 新增 Runbook URL、面板、儀表板和提醒 IDs。

    • 新增自訂標籤。

  7. 選擇預覽提醒來評估規則,並查看它會產生哪些提醒。它會顯示提醒清單,其中包含每個提醒的狀態和值。

  8. 選擇儲存以儲存規則,或選擇儲存並結束以儲存規則,然後返回提醒頁面。

建立 Cortex 或 Loki 受管錄音規則

您可以建立和管理外部 Cortex 或 Loki 執行個體的錄製規則。錄製規則會預先計算經常需要的表達式或運算昂貴的表達式,並將結果儲存為新的時間序列集。查詢這個新的時間序列速度更快,特別是儀表板,因為每次儀表板重新整理時,它們都會查詢相同的表達式。

先決條件

對於 Cortex 和 Loki 資料來源,請設定各自的服務來啟用尺規 API。

  • Lokilocal規則儲存類型,預設為 Loki 資料來源,僅支援檢視規則。若要編輯規則,請設定其他儲存類型之一。

  • Cortex – 設定 Grafana Prometheus 資料來源以指向 Cortex 時,請使用舊/api/prom字首,而不是 /prometheus。Prometheus 資料來源同時支援 Cortex 和 Prometheus,Grafana 預期查詢 API 和尺規 API 都位於相同的 URL 下。您無法為尺規 API 提供單獨的 URL。

注意

如果您不想管理特定 Loki 或 Prometheus 資料來源的提醒規則,請前往其設定,並清除透過提醒 UI 管理提醒核取方塊。

新增 Cortex 或 Loki 受管錄音規則
  1. 在 Grafana 主控台的 Grafana 選單中,選擇提醒 (鈴鐺) 圖示,以開啟列出現有提醒的提醒頁面。

  2. 選擇新提醒規則

  3. 步驟 1 中,新增規則名稱、類型和儲存位置,如下所示。

    • 規則名稱中,新增描述性名稱。此名稱會顯示在提醒規則清單中。它也是從此規則建立的每個提醒執行個體的alertname標籤。

    • 規則類型下拉式清單中,選取 Cortex/Loki 受管提醒

    • 選取資料來源下拉式清單中,選取 Prometheus 或 Loki 資料來源。

    • 命名空間下拉式清單中,選取現有的規則命名空間。否則,請選擇新增並輸入名稱以建立名稱。命名空間可以包含一或多個規則群組,而且只有組織用途。如需詳細資訊,請參閱Cortex 或 Loki 規則群組和命名空間

    • 群組下拉式清單中,選取所選命名空間內的現有群組。否則,請選擇新增並輸入名稱以建立名稱。新建立的規則會附加到 群組的結尾。群組內的規則會以固定間隔依序執行,且評估時間相同。

  4. 步驟 2 中,新增要評估的查詢。

    此值可以是 PromQL 或 LogQL 表達式。如果評估結果具有至少一個值大於 0 的序列,則規則會啟動提醒。會為每個系列建立提醒。

  5. 步驟 3 中,新增與規則相關聯的其他中繼資料。

    • 新增描述和摘要以自訂提醒訊息。使用 中的準則提醒規則的註釋和標籤

    • 新增 Runbook URL、面板、儀表板和提醒 IDs。

    • 新增自訂標籤。

  6. 選擇儲存以儲存規則,或選擇儲存並退出以儲存規則,然後返回提醒頁面。

建立 Grafana 受管警示規則

Grafana 可讓您建立警示規則,以查詢一或多個資料來源、減少或轉換結果,並將其彼此比較,或修正閾值。處理這些時,Grafana 會傳送通知給聯絡點。

注意

使用 Grafana 警示時建立 Grafana 受管警示規則,會導致在規則相符時傳送多個通知。某些聯絡點供應商可能具有可設定的選項,可取消重複通知。

新增 Grafana 受管規則
  1. 在 Grafana 主控台的 Grafana 選單中,選擇提醒 (鈴鐺) 圖示,以開啟列出現有提醒的提醒頁面。

  2. 選擇新提醒規則

  3. 步驟 1 中,新增規則名稱、類型和儲存位置,如下所示:

    • 規則名稱中,新增描述性名稱。此名稱會顯示在提醒規則清單中。它也是從此規則建立的每個提醒執行個體的alertname標籤。

    • 規則類型下拉式清單中,選取 Grafana 受管提醒

    • 資料夾下拉式清單中,選取要存放規則的資料夾。如果您未選取資料夾,則規則會存放在General資料夾中。若要建立資料夾,請選取下拉式清單並輸入新的資料夾名稱。

  4. 步驟 2 中,新增要評估的查詢和表達式。

    • 保留預設名稱或將滑鼠暫留在上方,然後選擇編輯圖示以變更名稱。

    • 對於查詢,請從下拉式清單中選取資料來源。

    • 新增一或多個查詢或表達式 (如需表達式的詳細資訊,請參閱 Grafana 文件中的表達式)。

    • 針對每個表達式,選取 Classic 條件以建立單一提醒規則,或從數學減少重新取樣選項中選擇,為每個序列產生個別提醒。如需這些選項的詳細資訊,請參閱單一和多維度規則

    • 選擇執行查詢來驗證查詢是否成功。

  5. 步驟 3 中,新增條件。

    • 條件下拉式清單中,選取查詢或表達式以啟動警示規則。

    • 對於評估每個,請指定評估的頻率。必須是 10 秒的倍數。例如 1m30s

    • 對於評估 ,請指定條件在啟動提醒之前必須為 true 的持續時間。

      注意

      違反條件後,警示會進入 Pending 狀態。如果條件在指定的持續時間內仍然違反,警示會轉換為 Firing 狀態。如果不再符合,則會還原為 Normal 狀態。

    • 設定無資料和錯誤處理中,設定缺少資料的提醒行為。 使用 中的準則不處理資料或錯誤案例

    • 選擇預覽提醒,檢查目前執行查詢的結果。預覽不包含任何資料和錯誤處理條件。

  6. 步驟 4 中,新增與規則相關聯的其他中繼資料。

    • 新增描述和摘要以自訂提醒訊息。使用 中的準則提醒規則的註釋和標籤

    • 新增 Runbook URL、面板、儀表板和提醒 IDs。

    • 新增自訂標籤。

  7. 選擇儲存以儲存規則,或選擇儲存並退出以儲存規則,然後返回提醒頁面。

單一和多維度規則

對於 Grafana 受管警示規則,您可以建立具有傳統條件的規則,也可以建立多維度規則。

單一維度規則 (傳統條件)

使用傳統條件表達式來建立規則,在滿足其條件時啟動單一提醒。對於傳回多個序列的查詢,Grafana 不會追蹤每個序列的提醒狀態。因此,即使多個序列符合警示條件,Grafana 也會僅傳送單一警示。

如需如何格式化表達式的詳細資訊,請參閱 Grafana 文件中的表達式

多維度規則

若要為查詢中傳回的每個序列產生個別的提醒執行個體,請建立多維規則。

注意

多維規則產生的每個提醒執行個體都會計入提醒的總配額。當您達到提醒配額時,不會評估規則。如需多維規則配額的詳細資訊,請參閱配額達到錯誤

若要從單一規則建立多個執行個體,請使用 MathReduceResample表達式來建立多維度規則。例如,您可以:

  • 為每個查詢新增Reduce運算式,將所選時間範圍中的值彙總為單一值。(使用數值資料的規則不需要)。

  • 新增具有規則條件的Math表達式。如果查詢或減少表達式在規則不應啟動提醒時已傳回 0,或者如果規則應啟動提醒時已傳回正數,則不需要這麼做。

    一些範例:

    • $B > 70 如果它應該在 B 查詢/表達式的值超過 70 時啟動提醒。

    • $B < $C * 100 如果 B 值小於 C 值乘以 100,則應啟動提醒。如果比較的查詢在其結果中具有多個序列,則不同查詢的序列如果具有相同的標籤,或其中一個是另一個的子集,則會相符。

注意

Grafana 不支援具有範本變數的提醒查詢。設定警示時,警示查詢不支援社群頁面範本變數的詳細資訊。

多維度規則的效能考量

每個提醒執行個體都會計入提醒配額。建立的多維度規則不會評估警示配額內可容納的執行個體數量,並傳回配額錯誤。如需詳細資訊,請參閱配額達到錯誤

多維度警示可能會對 Grafana 工作區的效能,以及資料來源的效能產生很大的影響,因為 Grafana 會查詢它們以評估您的警示規則。當您嘗試最佳化監控系統的效能時,下列考量會很有幫助。

  • 規則評估的頻率 – 警示規則的每個屬性都會控制規則評估的頻率。我們建議您使用最低可接受的評估頻率。

  • 結果集基數 – 您使用規則建立的提醒執行個體數量會影響其效能。假設您正在監控機群中每個 VM 上每個 API 路徑的 API 回應錯誤。此集具有路徑數量的基數乘以 VMs 數量。您可以減少結果集的基數,例如,透過監控每個 VM 的總錯誤數,而不是每個 VM 的每個路徑。

  • 查詢的複雜性 – 資料來源可以處理和回應的查詢,以快速使用較少的資源。雖然此考量比上述其他考量更不重要,但如果您已盡可能減少這些考量,查看個別查詢效能可能會有所影響。您也應該了解評估這些規則對您的資料來源造成的效能影響。警示查詢通常是監控資料庫處理的絕大多數查詢,因此影響 Grafana 執行個體的相同載入因素也會影響它們。

配額達到錯誤

您可以在單一工作區中擁有的提醒執行個體數量有配額。當您達到該號碼時,您無法再在該工作區中建立新的提醒規則。使用多維提醒時,提醒執行個體的數量會隨時間而變化。

使用提醒執行個體時,請務必記住下列事項。

  • 如果您只建立單一維度規則,則每個規則都是單一提醒執行個體。您可以在單一工作區中建立與提醒執行個體配額相同的規則數目,而不再建立。

  • 多維度規則會建立多個提醒執行個體,但直到評估數字後才會知道。例如,如果您建立警示規則來追蹤 Amazon EC2 執行個體的 CPU 用量,則當您建立 EC2 執行個體時,可能會有 50 個 EC2 執行個體 (因此還有 50 個警示執行個體),但如果您一週後再新增 10 個 EC2 執行個體,則下一個評估會有 60 個警示執行個體。

    當您建立多維提醒時,會評估提醒執行個體的數量,而且您無法建立立即將您置於提醒執行個體配額上的提醒執行個體數量。由於提醒執行個體的數量可以變更,因此每次評估您的規則時都會檢查您的配額。

  • 在規則評估時間,如果規則導致您超出提醒執行個體的配額,則在更新提醒規則,使提醒執行個體總數低於服務配額之前,不會評估該規則。發生這種情況時,您會收到提醒通知,告知您已達到配額 (通知使用通知政策來評估規則)。通知包含具有值 的Error註釋QuotaReachedError

  • 導致QuotaReachedError停止評估的規則。只有在進行更新,且更新後的評估本身不會導致 時,才會繼續評估QuotaReachedError。未評估的規則會顯示 Grafana 主控台中的配額達到錯誤。

  • 您可以透過移除警示規則,或編輯多維警示來減少警示執行個體的數量 (例如,對每個 VM 的錯誤有一個提醒,而不是對 VM 中的每個 API 的錯誤有一個提醒)。

  • 若要繼續評估,請更新提醒並儲存。您可以更新它以降低提醒執行個體的數量,或者如果您已進行其他變更以降低提醒執行個體的數量,則可以儲存它而不做任何變更。如果可以繼續,則為 。如果它導致另一個 QuotaReachedError,則您無法儲存它。

  • 當警示儲存並恢復評估,而不超過警示配額時,配額達到的錯誤可以繼續在 Grafana 主控台中顯示一段時間 (直到其評估間隔),不過,如果符合規則閾值,則警示規則評估會開始並傳送提醒。

  • 如需提醒配額和其他配額的詳細資訊,請參閱Amazon Managed Grafana 服務配額

不處理資料或錯誤案例

選擇在資料不存在或發生錯誤時如何處理警示行為的選項。

下表列出處理任何資料的選項。

無資料選項 Behavior (行為)

無資料

使用警示規則DatasourceNoData的名稱和 UID,以及未將資料傳回為標籤的資料來源 UID 來建立警示。

提醒

將警示規則狀態設定為 Alerting

OK

將警示規則狀態設定為 Normal

下表列出處理錯誤案例的選項。

錯誤或逾時選項 Behavior (行為)

提醒

將警示規則狀態設定為 Alerting

OK

將警示規則狀態設定為 Normal

錯誤

使用警示規則DatasourceError的名稱和 UID,以及未將資料傳回為標籤的資料來源 UID 來建立警示。

提醒規則的註釋和標籤

註釋和標籤是與來自提醒規則、資料來源回應的提醒,以及提醒規則評估所產生的提醒相關聯的鍵/值對。它們可以直接用於提醒通知,也可以用於範本範本函數,以動態方式建立通知聯絡人。

註釋

註釋是鍵/值對,可提供警示的其他資訊。您可以使用下列註釋:descriptionsummaryrunbook_urldashboardUidalertIdpanelId。這些會顯示在 UI 中的規則和提醒詳細資訊中,並可用於聯絡點訊息範本。

標籤

標籤是包含提醒相關資訊的鍵值組。警示的標籤集會在警示評估和通知過程中產生並新增至 。它們的使用方式如下。

  • 提醒的完整標籤集可唯一識別 Grafana 提醒中的該提醒。

  • Alertmanager 使用標籤來比對通知政策靜音警示群組的警示。

  • 警示 UI 會顯示該規則評估所產生的每個警示執行個體的標籤。

  • 聯絡點可以存取標籤,以動態產生通知,其中包含導致通知的警示特定資訊。

  • 標籤可以新增至提醒規則。這些手動設定的標籤可以使用範本函數並參考其他標籤。新增至此處提醒規則的標籤優先於標籤之間發生衝突的情況。

展開註釋和標籤時,可使用下列範本變數。

名稱 描述

$labels

查詢或條件中的標籤。例如,{{ $labels.instance }}{{ $labels.job }}。當規則使用傳統條件時,此功能無法使用。

$values

為此提醒規則評估的所有減少和數學表達式的值。例如, {{ $values.A }}{{ $values.A.Labels }}{{ $values.A.Value }},其中 A是表達式refID的 。當規則使用傳統條件時,無法使用此功能

$value

警示執行個體的值字串。例如:[ var='A' labels={instance=foo} value=10 ]

管理提醒規則

提醒頁面列出提醒規則。根據預設,規則會依資料來源類型分組。Grafana 區段列出 Grafana 管理的規則,而 Cortex/Loki 區段列出 Prometheus 相容資料來源的規則。您可以檢視 Prometheus 相容資料來源的提醒規則,但無法編輯。

檢視提醒規則

使用 Grafana 提醒,您可以在一個頁面中檢視所有提醒。

檢視提醒詳細資訊
  1. 在 Grafana 主控台的 Grafana 功能表中,選擇警示 (鈴鐺) 圖示以開啟警示頁面。根據預設,規則會依資料來源類型顯示在群組中。您也可以依每個提醒的目前狀態檢視 (以下文字會更詳細地說明這些)。

  2. 檢視為中,您可以選擇您偏好的選項,在群組和狀態檢視之間切換。

  3. 選擇資料列旁的箭頭,以檢視該資料列的更多詳細資訊。規則的詳細資訊包括規則標籤、註釋、資料來源和查詢,以及規則產生的提醒執行個體清單。

群組檢視

群組檢視顯示依資料夾分組的 Grafana 提醒規則,以及依 namespace + 分組的 Loki 或 Prometheus 提醒規則group。這是用於管理規則的預設規則清單檢視。您可以展開每個群組,以檢視此群組中的規則清單。進一步展開規則以檢視其詳細資訊。您也可以展開規則產生的動作按鈕和提醒,以檢視其詳細資訊。

狀態檢視

狀態檢視會顯示依狀態分組的提醒規則。使用此檢視來取得哪些規則處於何種狀態的概觀。每個規則都可以展開以檢視其詳細資訊。動作按鈕和此規則產生的任何提醒,每個提醒都可以進一步展開以檢視其詳細資訊。

篩選提醒規則

您可以透過多種方式篩選出現在提醒頁面上的提醒規則。

  • 您可以選擇選取資料來源,然後選擇要篩選的資料來源,以顯示查詢特定資料來源的規則。

  • 您可以在依標籤搜尋中選擇搜尋條件,依標籤篩選。某些範例條件包括 environment=productionregion=~US|EUseverity!=warning

  • 您可以選擇依狀態篩選提醒,然後選擇您要檢視的狀態,以篩選在特定狀態顯示規則。

編輯或刪除提醒規則

Grafana 受管提醒規則只能由具有儲存規則之資料夾編輯許可的使用者編輯或刪除。外部 Cortex 或 Loki 執行個體的警示規則,可由具有編輯器或管理員角色的使用者編輯或刪除。

編輯或刪除規則
  1. 展開規則,直到您可以查看檢視編輯刪除的規則控制項。

  2. 選擇編輯以開啟建立規則頁面。以建立規則的相同方式進行更新。如需詳細資訊,請參閱 建立 Grafana 受管警示規則或 中的說明建立 Cortex 或 Loki 受管提醒規則

  3. 或者,選擇刪除以刪除規則。

Cortex 或 Loki 規則群組和命名空間

您可以組織您的規則。規則是在規則群組內建立的,規則群組會組織成命名空間。規則群組內的規則會以定期間隔依序執行。預設間隔為一分鐘。您可以重新命名 Cortex 或 Loki 命名空間和規則群組,並編輯規則群組評估間隔。

編輯規則群組或命名空間
  1. 在 Grafana 主控台的 Grafana 功能表中,選擇警示 (鈴鐺) 圖示以開啟警示頁面。

  2. 導覽至您要編輯的規則群組或命名空間中的規則。

  3. 選擇編輯 (筆) 圖示。

  4. 變更規則群組或命名空間。

    注意

    對於命名空間,您只能編輯名稱。對於規則群組,您可以變更群組中規則的名稱或評估間隔。例如,您可以選擇讓1m規則每分鐘評估一次,或每隔 30 秒30s評估一次。

  5. 選擇 Save changes (儲存變更)。