赞
踩
Apache SkyWalking 告警是由一组规则驱动,这些规则定义在 config/alarm-settings.yml 文件中
告警规则有两种类型:单独规则、复合规则
rules: # 规则唯一名称,必须以'_rule'结尾. service_resp_time_rule: # 度量名称,也是OAL脚本中的度量名,目前Service, Service Instance, Endpoint的度量可以用于告警 metrics-name: service_resp_time # [可选]默认,匹配此指标中的所有服务 include-names: - service_a - service_b exclude-names: - service_c # 阈值,对于多种指标值的如percentile可以配置P50、P75、P90、P95、P99的阈值 threshold: 75 # 操作符 op: < # 评估度量标准的时间长度 period: 10 # 度量有多少次符合告警条件后,才会触发告警 count: 3 # 检查多少次,告警触发后保持沉默,默认周期相同 silence-period: 10 # 该规则触发时,发送的通知消息 message: Response time of service {name} is more than 50ms in 1 minutes of last 1 minutes.
复合规则仅适用于针对相同实体级别的告警规则
例如都是服务级别的告警规则:service_percent_rule && service_resp_time_percentile_rule 不适用于编写不同实体级别的告警规则
rules: service_resp_time_rule: metrics-name: service_resp_time op: ">" threshold: 1000 period: 10 count: 2 silence-period: 10 message: 服务【{name}】的平均响应时间在最近10分钟内有2分钟超过1秒 service_sla_rule: metrics-name: service_sla op: "<" threshold: 8000 period: 10 count: 2 silence-period: 10 message: 服务【{name}】的成功率在最近10分钟内有2分钟低于80% composite-rules: # 规则名称:在告警信息中显示的唯一名称,必须以_rule结尾 comp_rule: # 指定如何组成规则,支持&&, ||, ()操作符 expression: service_resp_time_rule && service_sla_rule message: 服务【{name}】在最近10分钟内有2分钟平均响应时间超过1秒并且成功率低于80%
打开源码&Live-Demo工程
修改oap-server/server-bootstrap/src/main/resources/alarm-settings.yml
文件覆盖如下配置(最近1分钟内,应用平均响应时间超过50ms次数达到1次)
rules: service_resp_time_rule: metrics-name: service_resp_time threshold: 50 op: ">" period: 1 count: 1 message: Response time of service {name} is more than 50ms in 1 minutes of last 1 minutes. dingtalkHooks: textTemplate: |- { "msgtype": "text", "text": { "content": "Apache SkyWalking Alarm: \n %s." } } webhooks: - url: https://oapi.dingtalk.com/robot/send?access_token=xxx secret: xxx
启动OAP服务
org.apache.skywalking.oap.server.starter.OAPServerStartUp
启动UI服务
org.apache.skywalking.apm.webapp.ApplicationStartUp
启动Eureka test.skywalking.springcloud.test.eureka.service.EurekaService_Main
启动ProjectB
test.skywalking.springcloud.test.projectb.ProjectB_Main
执行 curl http://localhost:8762/projectB/test
等待1min中后,访问Skywalking UI界面中的告警界面可以看到对应的告警信息
同时,钉钉群中也可以看到推送的消息
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。