Grafana提供豐富的可視化介面,同時具備警示功能。您可以在Grafana中,添加Contact point配置。添加完成後,Grafana會將警示訊息發送到Log Service警示系統中。由Log Service警示系統完成警示降噪、通知等處理。本文適用於Grafana 8.0及以上版本。
前提條件
已建立開放警示應用。更多資訊,請參見配置開放警示對外介面。Grafana配置
- 登入Grafana控制台。
- 建立Contact point。
- 在左側導覽列中,選擇,然後單擊New contact point。
- 在Create contact point頁面中,配置如下參數。

參數 說明 Name 設定Contact point名稱。 Contact point type Contact point的類型,此處配置為webhook。 Url Contact point的URL,此處配置為您在Log Service中建立開放警示服務和應用後產生的介面資訊(完整URL)。如何擷取,請參見擷取介面資訊。 - 單擊Save contact point。
- 為通知策略綁定Contact point。您可以通過修改通知策略的根策略或建立路由策略來綁定Contact point。此處以修改根策略為例。
- 單擊Notification policies。
- 在Root policy - default for all alerts地區,單擊Edit。
- 在Default contact point列表中選擇您在步驟2中建立的Contact Point。

- 單擊Save。
Grafana警示訊息
Grafana警示訊息內容樣本如下:
{
"receiver": "http",
"status": "firing",
"alerts":
[
{
"status": "firing",
"labels":
{
"alertname": "test"
},
"annotations":
{
"description": "test alert",
},
"startsAt": "2022-02-17T21:44:07.106902+08:00",
"endsAt": "0001-01-01T00:00:00Z",
"generatorURL": "http://localhost:3000/alerting/abcd/edit",
"fingerprint": "65d7bbdb01ce6c93",
"silenceURL": "http://localhost:3000/alerting/silence/new?alertmanager=grafana&matchers=alertname%3Dtest",
"dashboardURL": "",
"panelURL": "",
"valueString": "[ metric='go_threads{instance=\"prometheus\", job=\"prometheus\"}' labels={__name__=go_threads, instance=prometheus, job=prometheus} value=15 ]"
}
],
"groupLabels":
{},
"commonLabels":
{
"alertname": "test"
},
"commonAnnotations":
{
"description": "test alert",
},
"externalURL": "http://localhost:3000/",
"version": "1",
"groupKey": "{}/{alertname=\"test\"}:{}",
"truncatedAlerts": 0,
"orgId": 1,
"title": "[FIRING:1] (test)",
"state": "alerting",
"message": "**Firing**\n\nValue: [ metric='go_threads{instance=\"prometheus\", job=\"prometheus\"}' labels={__name__=go_threads, instance=prometheus, job=prometheus} value=15 ]\nLabels:\n - alertname = test\nAnnotations:\n - description = test alert\nSource: http://localhost:3000/alerting/abcd/edit\nSilence: http://localhost:3000/alerting/silence/new?alertmanager=grafana&matchers=alertname%3Dtest\n"
}欄位對應
Grafana警示訊息被接入到Log Service後,映射為Log Service警示內容。樣本如下:
{
"aliuid": "{開放警示應用所屬的阿里雲帳號ID}",
"alert_instance_id": "{自動產生}",
"alert_id": "test",
"alert_type": "sls_pub",
"alert_name": "test",
"region": "{警示中心Project所在的地區}",
"project": "{警示中心所屬的Project}",
"project_id": 0,
"next_eval_interval": 0,
"alert_time": 1645607565,
"fire_time": 1645105447,
"fire_results": null,
"fire_results_count": 0,
"resolve_time": 0,
"status": "firing",
"results": null,
"labels":
{},
"annotations":
{
"__config_app__": "sls_pub_alert",
"__pub_alert_app__": "{開放警示應用ID}",
"__pub_alert_protocol__": "grafana8",
"__pub_alert_region__": "{接收警示訊息的網路介面對應的地區}",
"__pub_alert_service__": "{開放警示服務ID}",
"desc": "test alert",
"fingerprint": "65d7bbdb01ce6c93",
"silenceURL": "http://localhost:3000/alerting/silence/new?alertmanager=grafana&matchers=alertname%3Dtest",
"valueString": "[ metric='go_threads{instance=\"prometheus\", job=\"prometheus\"}' labels={__name__=go_threads, instance=prometheus, job=prometheus} value=15 ]"
},
"severity": 6,
"policy":
{
"alert_policy_id": "{開放警示應用中配置的警示策略ID}",
"action_policy_id": "{開放警示應用中配置的行動策略ID}",
"use_default": false,
"repeat_interval": "{開放警示應用中配置的重複等待時間}"
},
"template": null,
"drill_down_query": "http://localhost:3000/alerting/abcd/edit",
}Log Service警示內容與Grafana警示內容的映射關係如下:
| Log Service | Grafana | 說明 |
| aliuid | 無 | 用於接入Grafana警示的開放警示應用所屬的阿里雲帳號ID。 |
| alert_id | alertname | 警示監控規則ID。 如果Grafana警示訊息的labels欄位中有alertname欄位,則alert_id的值為alertname欄位的值,否則為空白。 |
| alert_type | 無 | 警示類型,固定為sls_pub。 |
| alert_name | alertname | 警示監控規則名稱。 如果Grafana警示訊息的labels欄位中有alertname欄位,則alert_name的值為alertname欄位的值,並刪除原始欄位。否則為空白。 |
| status | status | 警示狀態。 |
| next_eval_interval | 無 | 警示評估時間間隔,固定為0。 |
| alert_time | 無 | 警示首次觸發時間,為Log Service接收到Grafana警示訊息的時間。 |
| fire_time | startsAt | 警示觸發時間。 |
| resolve_time | endsAt | 警示恢復。 如果Grafana警示訊息中的status為firing,則resolve_time的值為0,否則為endsAt對應的時間戳記。 |
| labels | labels | 警示標籤資訊。 如果您在建立開放警示應用時 ,在資訊加工中添加了標籤資訊,則此標籤資訊將被添加到labels欄位中。 |
| annotations | annotations | 警示標註資訊。Log Service警示的annotations欄位中將添加如下額外欄位。
如果您在建立開放警示應用時 ,在資訊加工中添加了標註資訊,則此標註資訊將被添加到annotations欄位中。 |
| severity | severity | 警示嚴重度。 說明 如果Grafana警示訊息中的annotations欄位或labels欄位中包含severity欄位,則將Grafana警示訊息發送到Log Service後,Log Service會根據該欄位對應警示嚴重度。如果沒有,則預設映射為中等。更多資訊,請參見警示嚴重程度。 |
| policy | 無 | 您在開放警示應用中配置的警示策略。更多資訊,請參見Policy結構。 |
| project | 無 | 警示中心所屬的Project。更多資訊,請參見專案(Project)。 |
| drill_down_query |
| Grafana警示訊息的URL。
單擊該URL將跳轉至Grafana警示管理頁面,並自動為您顯示符合groupLabels欄位內容的警示訊息。 |