全部產品
Search
文件中心

:接入Grafana警示(Grafana 8.0以下版本)

更新時間:Jan 13, 2025

Grafana提供豐富的可視化介面,同時具備警示功能。您可以在Grafana中,添加Notification channel配置。添加完成後,Grafana會將警示訊息發送到Log Service警示系統中。由Log Service警示系統完成警示降噪、通知等處理。本文適用於Grafana 8.0以下版本。

前提條件

已建立開放警示應用。更多資訊,請參見配置開放警示對外介面

Grafana配置

  1. 登入Grafana控制台。
  2. 在左側導覽列中,選擇Alerting > Notification channels,然後單擊Add channel
  3. New Notification Channel頁面中,配置如下參數,然後單擊Save
    Grafana配置
    參數 說明
    Name 自訂Notification channel名稱。
    Type Notification channel類型,此處配置為webhook
    Url Notification channel的URL,此處配置為您在Log Service中建立開放警示服務和應用後產生的介面資訊(完整URL)。如何擷取,請參見擷取介面資訊
    說明 如果您的Grafana運行在阿里雲ECS上,則建議您在選擇Grafana警示訊息接入地區時,選擇ECS所在地區,並使用區域網路或VPC網域名稱。否則您選擇任一地區的公網介面即可。

Grafana警示訊息

Grafana警示訊息內容樣本如下:

說明 如果Grafana警示訊息中存在severity欄位,則將Grafana警示訊息發送到Log Service後,Log Service會根據該欄位對應警示嚴重度。如果沒有,則預設映射為中等。更多資訊,請參見警示嚴重程度
{
    "dashboardId": 1,
    "evalMatches": [
        {
            "value": 173.14285714285714,
            "metric": "go_gc_duration_seconds_count{instance=\"localhost: 9090\", job=\"prometheus\"}",
            "tags": {
                "__name__": "go_gc_duration_seconds_count",
                "instance": "localhost:9090",
                "job": "prometheus"
            }
        }
    ],
    "message": "sadfasdf",
    "orgId": 1,
    "panelId": 4,
    "ruleId": 2,
    "ruleName": "fuxasdfasd",
    "ruleUrl": "http://localhost:3000/d/biSKHC8Mz/new-dashboard-copy?tab=alert&viewPanel=4&orgId=1",
    "state": "alerting",
    "tags": {
        "severity" : "crit",
        "xasdfasdf": "mveonasdf"
    },
    "title": "[Alerting] fuxasdfasd"
}

欄位對應

Grafana警示訊息被接入到Log Service後,映射為Log Service警示內容。樣本如下:

{
    "aliuid": "{開放警示應用所屬的阿里雲帳號ID}",
    "alert_instance_id": "{自動產生}",
    "project": "{警示中心所屬的Project}",
    "region": "{警示中心Project所在的地區}",
    "alert_id": "2",
    "alert_type": "sls_pub",
    "alert_name": "sadfasdf",
    "next_eval_interval": 0,
    "alert_time": 1603859020,
    "fire_time": 1603859020,
    "resolve_time": 0,
    "status": "firing",
    "labels": {
        "xasdfasdf": "mveonasdf"
    },
    "annotations": {
        "__pub_alert_region__": "{接收警示訊息的網路介面對應的地區}",
        "__config_app__": "sls_pub_alert",
        "__pub_alert_service__": "{開放警示服務ID}",
        "__pub_alert_app__": "{開放警示應用ID}",
        "__pub_alert_protocol__": "grafana",
        "severity" : "crit",
        "orgId": "1",
        "dashboardId": "1",
        "panelId": "4",
        "ruleUrl": "http://localhost:3000/d/biSKHC8Mz/new-dashboard-copy?tab=alert&viewPanel=4&orgId=1",
        "imageUrl": "",
        "desc": "sadfasdf",
        "title": "[Alerting] fuxasdfasd"
    },
    "severity": 10,
    "policy": {
        "alert_policy_id": "{開放警示應用中配置的警示策略}",
        "action_policy_id": "{開放警示應用中配置的行動策略}",
        "repeat_interval": "{開放警示應用中配置的重複等待時間}"
    },
    "drill_down_query": "http://localhost:3000/d/biSKHC8Mz/new-dashboard-copy?tab=alert&viewPanel=4&orgId=1",
    "results": [{
        "query": "go_gc_duration_seconds_count{instance=\"localhost: 9090\", job=\"prometheus\"}",
        "fire_result": {
            "__name__": "go_gc_duration_seconds_count",
            "instance": "localhost:9090",
            "job": "prometheus",
            "value": "173.142",
        }
    }]
}

Log Service警示內容中的欄位與Grafana側的映射關係如下:

Log Service Grafana 說明
aliuid 用於接入警示的開放警示應用所屬的阿里雲帳號ID
alert_id ruleId 警示監控規則ID
alert_type 警示類型,固定為sls_pub。
alert_name ruleName 警示監控規則名稱
status state 警示狀態。
  • 如果Grafana警示訊息中的state值為ok,則對應Log Service中的status值為resolved。
  • 如果Grafana警示訊息中的state值為其他值(例如alerting),則對應Log Service中的status值為firing。
next_eval_interval 警示評估時間間隔,固定為0。
alert_time Log Service接收到Grafana警示訊息的時間
fire_time Log Service接收到Grafana警示訊息的時間
resolve_time 警示恢復,固定為0。
labels tags 警示標籤資訊。
  • 如果Grafana警示訊息的tags欄位中存在severity欄位,則被接入到Log Service後,severity欄位將被添加Log Service警示的annotations欄位中。
  • 如果您在建立開放警示應用時 ,在資訊加工中添加了標籤資訊,則此標籤資訊將被添加到labels欄位中。
    說明 當您在資訊加工中配置的標籤的Key與Grafana警示訊息的tags欄位中的子欄位重複時,映射結果以您在資訊加工中配置的為準。
annotations Grafana警示被接入到Log Service後,Log Service警示的annotations欄位中將添加如下額外欄位。
  • __config_app__: "sls_pub_alert"
  • __pub_alert_service__: {開放警示服務id}
  • __pub_alert_app__: {開放警示應用id}
  • __pub_alert_protocol__: "grafana"
  • __pub_alert_region__: {接收警示訊息的網路介面對應的地區}
  • orgId : {grafana訊息的orgId欄位}
  • dashboardId: {grafana訊息的dashboardId欄位}
  • panelId: {grafana訊息的panelId欄位}
  • ruleUrl: {grafana訊息的ruleUrl欄位}
  • imageUrl: {grafana訊息的imageUrl欄位}
  • desc: {grafana訊息的message欄位}
  • title: {grafana訊息的title欄位}
如果您在建立開放警示應用時 ,在資訊加工中添加了標註資訊,則此標註資訊將被添加到annotations欄位中。
說明 當您在資訊加工中配置的標註的Key與Grafana警示訊息的tags欄位中的子欄位重複時,映射結果以您在資訊加工中配置的為準。
severity severity 警示嚴重度。更多資訊,請參見警示嚴重程度
policy 您在開放警示應用中配置的警示策略。更多資訊,請參見Policy結構
project 警示中心所屬的Project。更多資訊,請參見專案(Project)
drill_down_query ruleUrl 展示Grafana警示訊息中ruleUrl欄位的值。
results evalMatches 結果集資料,evalMatches中的每一個對象,分別對應results中的一個QueryData結構。具體映射關係請參見結果集映射results欄位的更多資訊,請參見QueryData結構
表 1. 結果集映射
QueryData結構 evalMatches 說明
query metric 查詢語句
fire_result tagsvalue Grafana警示中tags欄位的內容展開為索引值對格式,存入fire_result欄位中。value欄位直接存入fire_result欄位中。

value欄位的值只保留3位小數。