Grafana提供丰富的可视化界面,同时具备告警功能。您可以在Grafana中,添加Notification channel配置。添加完成后,Grafana会将告警消息发送到日志服务告警系统中。由日志服务告警系统完成告警降噪、通知等处理。本文适用于Grafana 8.0以下版本。
前提条件
Grafana配置
Grafana告警消息
Grafana告警消息内容示例如下:
说明 如果Grafana告警消息中存在severity字段,则将Grafana告警消息发送到日志服务后,日志服务会根据该字段映射告警严重度。如果没有,则默认映射为中等。更多信息,请参见告警严重程度。
{
"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告警消息被接入到日志服务后,映射为日志服务告警内容。示例如下:
{
"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",
}
}]
}
日志服务告警内容中的字段与Grafana侧的映射关系如下:
日志服务 | Grafana | 说明 |
---|---|---|
aliuid | 无 | 用于接入告警的开放告警应用所属的阿里云账号ID |
alert_id | ruleId | 告警监控规则ID |
alert_type | 无 | 告警类型,固定为sls_pub。 |
alert_name | ruleName | 告警监控规则名称 |
status | state | 告警状态。
|
next_eval_interval | 无 | 告警评估时间间隔,固定为0。 |
alert_time | 无 | 日志服务接收到Grafana告警消息的时间 |
fire_time | 无 | 日志服务接收到Grafana告警消息的时间 |
resolve_time | 无 | 告警恢复时间,固定为0。 |
labels | tags | 告警标签信息。
|
annotations | 无 | Grafana告警被接入到日志服务后,日志服务告警的annotations字段中将添加如下额外字段。
如果您在创建开放告警应用时 ,在信息加工中添加了标注信息,则此标注信息将被添加到annotations字段中。
说明 当您在信息加工中配置的标注的Key与Grafana告警消息的tags字段中的子字段重复时,映射结果以您在信息加工中配置的为准。
|
severity | severity | 告警严重度。更多信息,请参见告警严重程度。 |
policy | 无 | 您在开放告警应用中配置的告警策略。更多信息,请参见Policy结构。 |
project | 无 | 告警中心所属的Project。更多信息,请参见项目(Project)。 |
drill_down_query | ruleUrl | 展示Grafana告警消息中ruleUrl字段的值。 |
results | evalMatches | 结果集数据,evalMatches中的每一个对象,分别对应results中的一个QueryData结构。具体映射关系请参见表 1。results字段的更多信息,请参见QueryData结构。 |
QueryData结构 | evalMatches | 说明 |
---|---|---|
query | metric | 查询语句 |
fire_result | tags、value | Grafana告警中tags字段的内容展开为键值对格式,存入fire_result字段中。value字段直接存入fire_result字段中。
value字段的值只保留3位小数。 |