一文搞定关于SkyWalking告警的那些事儿

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

我的每一篇文章都希望帮助读者解决实际工作中遇到的问题!如果文章帮到了您,劳烦点赞、收藏、转发!您的鼓励是我不断更新文章最大的动力!

  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试开发Kevin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值