当前位置:   article > 正文

Skywalking使用篇(二):告警配置_skywalking告警配置

skywalking告警配置

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.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
复合规则

复合规则仅适用于针对相同实体级别的告警规则
例如都是服务级别的告警规则: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%
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
默认告警规则
  1. 过去 3 分钟内服务平均响应时间超过 1 秒
  2. 最后2分钟服务成功率低于80%
  3. 最近 3 分钟内服务响应时间超过 1s 的百分比
  4. 服务实例在过去 2 分钟内平均响应时间超过 1s,并且实例名称与正则表达式匹配
  5. 过去 2 分钟内端点平均响应时间超过 1 秒
  6. 过去 2 分钟内数据库访问平均响应时间超过 1 秒
  7. 过去 2 分钟内端点关系平均响应时间超过 1 秒

支持的Hook类型

  • WebHook
  • GRPCHook
  • SlackHook
  • WechatHook
  • DingtalkHook
  • FeishuHook

测试钉钉告警

打开源码&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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

启动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界面中的告警界面可以看到对应的告警信息
在这里插入图片描述
同时,钉钉群中也可以看到推送的消息
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/236402
推荐阅读
相关标签
  

闽ICP备14008679号