skywalking 6.0 告警模块代码解读

本文深入解析skywalking 6.0版本的告警模块,涵盖告警规则定义、AlarmModule、AlarmModuleProvider等多个组件。告警规则由'alarm-setting.yml'配置,AlarmModuleProvider读取规则并初始化告警服务。告警处理涉及IndicatorNotify、NotifyHandler、AlarmCore等类,通过AlarmCore的定时任务检查触发告警条件并进行处理。
摘要由CSDN通过智能技术生成

   skywalking是一款针对分布式系统的APM(应用性能监控)系统,特别是针对微服务、cloud native和容器化(Docker, Kubernetes, Mesos)架构, 也可称为分布式追踪系统。主要提供以下功能:

  • 分布式追踪和上下文传输
  • 应用、实例、服务性能指标分析
  • 根源分析
  • 应用拓扑分析
  • 应用和服务依赖分析
  • 慢服务检测
  • 性能优化

skywalking 6.0 架构图如下:

    本文主要对skywalking6.0版本的告警模块源码进行解读,纯属个人理解,仅供参考。启用告警模块必须要在application.yml文件中增加“alarm/default”项才会在moduleMagager中加载告警的Module

 告警规则定义

告警的核心是由’ alarm-setting.yml’文件中配置的一组规则驱动的。报警规则(Rules)的定义分为两部分,

  1. rules。定义了触发报警的度量和条件,该部分映射为AlarmRule类。

  • [Rule name] 规则名称,唯一标识,需以“_rule”结尾
  • indicator-name 指标名称, oal脚本中度量名称(oal相关源码会在后续文章中进行解读),必须在oal脚本定义过。
  • include-names 适用该规则的实体名称,可配置系统名称、服务名称。不配置默认所有实体均适用。
  • threshold 阀值。
  • op 操作符,和阀值一起使用。
  • period 时间段,告警规则检查的时间段。
  • count 在period时间窗口内,达到op阀值的次数后即触发告警
  • silence-period 静默期,默认情况下与period相同,表示在静默期时间内,同样的告警只会触发一次。
  • message 告警推送的消息

  2. webhooks。触发告警规则后发送告警消息的服务端url列表。

规则配置示例如下:

rules:

  # Rule unique name, must be ended with `_rule`.

  service_resp_time_rule:

    indicator-name: service_resp_time

    op: ">"

    threshold: 1000

    period: 10

    count: 3

    silence-period: 5

    message: Response time of service {name} is more than 1000ms in 3 minutes of last 10 minutes.

webhooks:       

  - http://127.0.0.1/notify/

  - http://127.0.0.1/go-wechat/

 AlarmModule

org.apache.skywalking.oap.server.core.alarm.AlarmModule,实现 ModuleDefine 抽象类,Alarm管理器定义类。构造方法传入模块名name "alarm" 

#services() 实现方法,返回 Service 类名:IndicatorNotify实现类NotifyHandler

 AlarmModuleProvider

org.apache.skywalking.oap.server.core.alarm.provider.AlarmModuleProvider,实现 ModuleProvider 抽象类,告警模块Alarm管理器组件服务提供者。

#name() 实现方法,返回组件服务提供者名 "default" 

#module() 实现方法,返回组件类AlarmModule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值