Grafana提供豐富的可視化介面,同時具備警示功能。您可以在Grafana中,添加Notification channel配置。添加完成後,Grafana會將警示訊息發送到Log Service警示系統中。由Log Service警示系統完成警示降噪、通知等處理。本文適用於Grafana 8.0以下版本。
前提條件
已建立開放警示應用。更多資訊,請參見配置開放警示對外介面。Grafana配置
- 登入Grafana控制台。
- 在左側導覽列中,選擇,然後單擊Add channel。
- 在New Notification Channel頁面中,配置如下參數,然後單擊Save。
參數 說明 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 | 警示狀態。
|
| next_eval_interval | 無 | 警示評估時間間隔,固定為0。 |
| alert_time | 無 | Log Service接收到Grafana警示訊息的時間 |
| fire_time | 無 | Log Service接收到Grafana警示訊息的時間 |
| resolve_time | 無 | 警示恢復,固定為0。 |
| labels | tags | 警示標籤資訊。
|
| annotations | 無 | Grafana警示被接入到Log Service後,Log Service警示的annotations欄位中將添加如下額外欄位。
如果您在建立開放警示應用時 ,在資訊加工中添加了標註資訊,則此標註資訊將被添加到annotations欄位中。
說明 當您在資訊加工中配置的標註的Key與Grafana警示訊息的tags欄位中的子欄位重複時,映射結果以您在資訊加工中配置的為準。 |
| severity | severity | 警示嚴重度。更多資訊,請參見警示嚴重程度。 |
| policy | 無 | 您在開放警示應用中配置的警示策略。更多資訊,請參見Policy結構。 |
| project | 無 | 警示中心所屬的Project。更多資訊,請參見專案(Project)。 |
| drill_down_query | ruleUrl | 展示Grafana警示訊息中ruleUrl欄位的值。 |
| results | evalMatches | 結果集資料,evalMatches中的每一個對象,分別對應results中的一個QueryData結構。具體映射關係請參見結果集映射。results欄位的更多資訊,請參見QueryData結構。 |
| QueryData結構 | evalMatches | 說明 |
| query | metric | 查詢語句 |
| fire_result | tags、value | Grafana警示中tags欄位的內容展開為索引值對格式,存入fire_result欄位中。value欄位直接存入fire_result欄位中。
value欄位的值只保留3位小數。 |