zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【云原生 | Kubernetes 系列】---Skywalking 告警

Kubernetes 系列 --- 原生 告警 skywalking
2023-09-14 09:15:20 时间

1. Skywalking 告警

通过/apps/apache-skywalking-apm-bin/config/oal/core.oal 定义指标数据如何查询数据,
通过/apps/apache-skywalking-apm-bin/config/alarm-settings.yml定义告警规则.
对一定时间范围内的数据进行计算后告警.

2. Skywalking常用告警指标

config/oal/core.oal

https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/backend-alarm.md
规则名作用
service_resp_time服务响应时间,反应服务的快慢
service_sla服务的http请求成功率SLA,比如99%服务可用率
service_cpm每分钟吞吐量,请求次数
service_apdex应用性能指数,0-1之间,1最好
service_percentile指定最近多少数据范围内的响应时间百分比,p99,p95,p50在内的数据统计结果
endpoint_relation_cpm端点的每分钟吞吐量
endpoint_relation_resp_time端点的响应时间
endpoint_relation_sla端点的http请求成功率SLA
endpoint_relation_percentile端点的最近多少范围内的响应时间百分比.

3. Skywalking配置文件

alarm-settings.yml

指标含义
rules:定义rule规则
service_resp_time_rule:唯一的规则名称,必须以_rule结尾
metrics-name: service_resp_time指标名称
op: “>”操作符,>,<,==,>=,<=
threshold: 1000指标阈值
period: 10评估指标的间隔周期(10分钟)
count: 3匹配成功多少次发送告警
silence-period: 5触发告警后的静默时间(分钟)
message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes.告警信息

4. 默认报警规则

默认情况下alarm-setting.yml在发行版中提供了默认值。它包括以下规则:

  1. 过去 3 分钟内服务平均响应时间超过 1 秒。
  2. 最后2分钟服务成功率低于80%。
  3. 过去 3 分钟内超过 1 秒的服务响应时间百分比
  4. 服务实例最近 2 分钟平均响应时间超过 1 秒,并且实例名称与正则表达式匹配。
  5. 过去 2 分钟内端点平均响应时间超过 1 秒。
  6. 过去 2 分钟内数据库访问平均响应时间超过 1 秒。
  7. 过去 2 分钟内端点关系平均响应时间超过 1 秒。

5. 钉钉告警发送

修改配置文件alarm-settings.yml

当对服务发起访问,就从钉钉告警

rules:
  service_cpm_rule:
    metrics-name: service_cpm
    op: ">"
    threshold: 1
    period: 2
    count: 1
    silence-period: 2
    message: 服务 {name} 访问次数大于1

dingtalkHooks:
  textTemplate: |-
    {
      "msgtype": "text",
      "text": {
        "content": "Apache SkyWalking Alarm: \n %s."
      }
    }
  webhooks:
    - url: https://oapi.dingtalk.com/robot/send?access_token=1179c64f197a5da70d4b393111dd47578e58f8112e22f3e00d6632591337c43a

当对应用发起访问,就会触发钉钉告警

请添加图片描述

在skywalking控制台中也能看到告警触发记录

请添加图片描述