ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Skywalking告警功能

2021-11-26 17:34:58  阅读:371  来源: 互联网

标签:功能 服务 name service rule 规则 Skywalking 告警


Skywalking告警功能是在6.x版本新增的,其核心由一组规则驱动,这些规则定义在config/alarm-settings.yml 文件中。告警规则定义分为两部分: 1、告警规则:它们定义了应该如何触发度量警报,应该考虑什么条件 2、webhook(网络钩子):定义当告警触发时,哪些服务终端需要被告知 一、告警规则 告警规则有两种类型:单独规则、复合规则 1.1、单独规则
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. 
1.2、复合规则 复合规则仅适用于针对相同实体级别的告警规则 例如都是服务级别的告警规则: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%
告警规则配置项说明:
  • Rule name: 规则名称,也是在告警信息中显示的唯一名称。必须以’_rule’结尾,前缀可以自定义
  • metrics name:度量名称,取值为脚本中的度量名,目前只支持long、double、int类型。
  • include name:该规则作用于哪些实体名称,比如:服务名,终端名(可选,默认为全部)
  • exclude name:该规则不作用于哪些实体名称,比如:服务名,终端名(可选,默认为空)
  • op: 操作符:目前支持 > , < , = 【当然你可以自己扩展开发其他的操作符】
  • threshold:阈值/目标值:指标数据的目标数据 如sample中的1000就是服务响应时间,配合上操作符就是大于1000ms的服务响应
  • period: 告警检查周期:多久检查一次当前的指标数据是否符合告警规则
  • counts: 在一个period窗口中,如果values超过threshold值,达到counts值需要发送警报
  • silence-period:忽略相同告警信息的周期
  • message:告警信息
  • webhooks:服务告警通知服务地址
默认告警规则
  • 过去 3 分钟内服务平均响应时间超过 1 秒
  • 最后2分钟服务成功率低于80%
  • 最近 3 分钟内服务响应时间超过 1s 的百分比
  • 服务实例在过去 2 分钟内平均响应时间超过 1s,并且实例名称与正则表达式匹配
  • 过去 2 分钟内端点平均响应时间超过 1 秒
  • 过去 2 分钟内数据库访问平均响应时间超过 1 秒
  • 过去 2 分钟内端点关系平均响应时间超过 1 秒
支持的Hook类型
  • WebHook(可以简单理解位一种web层面的回调机制,通常由一些事件出发,与代码中得事件回调类似,只不过是Web层面的。由于是web层面的,所以当事件发生时,回调的不再是代码中得方法或函数,而是服务接口。例如:在告警这个场景,告警就是一个事件,当该事件发生时,Skywalking就会主动去调用一个配置好的接口,该接口就是所谓的webhook。skywalking的告警消息会通过HTTP请求进行发送,请求方法为POST,Content-Type为application/json,其JSON数据基于List进行序列化的。)
  • GRPCHook
  • SlackHook
  • WechatHook
0
  • DingtalkHook
0
  • FeishuHook
  • 测试钉钉告警
测试 由于上面配置了阈值是50ms,多点几次应用接口,到告警页面可见如下告警: 0 钉钉告警示例 修改配置:
tee /skywalking/apache-skywalking-apm-bin-es7/config/alarm-settings.yml <<-'EOF'
dingtalkHooks:
  textTemplate: |-
    {
      "msgtype": "text",
      "text": {
        "content": "Apache SkyWalking Alarm: \n %s."
      }
    }
  webhooks:
    - url: https://oapi.dingtalk.com/robot/send?access_token=xxxxx
      secret: xxxxx
EOF
如下: 0 钉钉告警效果: 0 webhook,编写回调接口 Skywalking通过HttpClient的方式远程调用在配置项webhooks中定义的告警通知服务地址: 0 了解了SW所传送的数据格式我们就可以对告警信息进行接收处理,实现我们需要的告警通知服务啦!我们将一个服务停掉,并将另外一个服务的某个对外暴露的接口让他休眠一定的时间。然后调用一定的次数观察服务的状态信息以及告警情况。 0 打开源码&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
0 启动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界面中的告警界面可以看到对应的告警信息 0 同时,钉钉群中也可以看到推送的消息 0   zhuan:https://blog.csdn.net/wb4927598/article/details/119192445

标签:功能,服务,name,service,rule,规则,Skywalking,告警
来源: https://www.cnblogs.com/duanxz/p/15608815.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有