
Apache SkyWalking告警是由一组规则驱动,这些规则定义在config/alarm-settings.yml文件中。
告警规则
告警规则定义了触发告警所考虑的条件。告警规则有两种类型,单独规则和复合规则,复合规则是单独规则的组合。这里重点介绍一下单独规则,单独规则主要有以下几点:
 规则名称:在告警信息中显示的唯一名称,必须以_rule结尾。
 metrics-name:度量名称,也是OAL脚本中的度量名。默认配置中可以用于告警的度量有:服务,实例,端点,服务关系,实例关系,端点关系。它只支持long,double和int类型。
 include-names:包含在此规则之内的实体名称列表。
 exclude-names:排除在此规则以外的实体名称列表。
 include-names-regex:提供一个正则表达式来包含实体名称。如果同时设置包含名称列表和包含名称的正则表达式,则两个规则都将生效。
 exclude-names-regex:提供一个正则表达式来排除实体名称。如果同时设置排除名称列表和排除名称的正则表达式,则两个规则都将生效。
 include-labels:包含在此规则之内的标签。
 exclude-labels:排除在此规则以外的标签。
 include-labels-regex:提供一个正则表达式来包含标签。如果同时设置包含标签列表和包含标签的正则表达式,则两个规则都将生效。
 exclude-labels-regex:提供一个正则表达式来排除标签。如果同时设置排除标签列表和排除标签的正则表达式,则两个规则都将生效。
 标签的设置必须把数据存储在meter-system中,例如:Prometheus, Micrometer。以上四个标签设置必须实现LabeledValueHolder接口。
 threshold:阈值。
 对于多个值指标,例如percentile,阈值是一个数组。像value1 value2 value3 value4 value5这样描述。每个值可以作为度量中每个值的阈值。如果不想通过此值或某些值触发警报,则将值设置为 -。例如在percentile中,value1是P50的阈值,value2是P75的阈值,那么-,-,value3, value4, value5的意思是,没有阈值的P50和P75的percentile告警规则。
 op:操作符,支持>, >=, <, <=, =。
 period:多久告警规则需要被检查一下。这是一个时间窗口,与后端部署环境时间相匹配。
 count:在一个周期窗口中,如果按op计算超过阈值的次数达到count,则发送告警。
 only-as-condition:true或者false,指定规则是否可以发送告警,或者仅作为复合规则的条件。
 silence-period:在时间N中触发报警后,在N -> N + silence-period这段时间内不告警。 默认情况下,它和period一样,这意味着相同的告警(同一个度量名称拥有相同的Id)在同一个周期内只会触发一次。
 message:该规则触发时,发送的通知消息。
默认告警规则
 过去 3 分钟内服务平均响应时间超过 1 秒
 最后2分钟服务成功率低于80%
 最近 3 分钟内服务响应时间超过 1s 的百分比
 服务实例在过去 2 分钟内平均响应时间超过 1s,并且实例名称与正则表达式匹配
 过去 2 分钟内端点平均响应时间超过 1 秒
 过去 2 分钟内数据库访问平均响应时间超过 1 秒
 过去 2 分钟内端点关系平均响应时间超过 1 秒
hook配置
hook是向外界发送警报信息的一种方式,SkyWalking支持多个相同类型的hook,主要包括
 webhook:当告警触发时,被调用的服务端点列表。
 gRPCHook:当告警触发时,被调用的远程gRPC方法的主机和端口。
 Slack Chat Hook:当告警触发时,被调用的Slack Chat接口。
 微信 Hook:当告警触发时,被调用的微信接口。
 钉钉 Hook:当告警触发时,被调用的钉钉接口。
 飞书 Hook:当告警触发时,被调用的飞书接口。
 WeLink  Hook:当告警触发时,被调用的Welink接口。
 PagerDuty Hook:当告警触发时,被调用的PagerDuty接口。
 Discord:当告警触发时,被调用的PagerDuty接口。
钉钉Hook配置
我们可以按以下方式配置钉钉的 Webhooks ,告警消息将按 Content-Type 为 application/json 通过HTTP的 POST 方式发送。
dingtalkHooks:
   textTemplate: |-
     {
       "msgtype": "text",
       "text": {
         "content": "Apache SkyWalking 告警: \n %s."
       }
     }
   webhooks:
     - url: https://oapi.dingtalk.com/robot/send?access_token=dummy_token
       secret: dummysecret
关于钉钉自定义机器人配置方式,可以参考
 https://open.dingtalk.com/document/orgapp/application-types
关于skywalking更加详细的告警配置信息可以参考
 https://gitcode.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md
我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!





![[计算机效率] 时间记录工具:ManicTime](https://img-blog.csdnimg.cn/direct/1a14a747e6014a24a2e023fed6f39357.png)













