skywalking-告警逻辑

都是应用服务告警

现在的需求要支持动态更新规则配置

如果oap服务使用配置中心管理配置,skywalking支持动态加载-每分钟更新一次,这样不需要改代码,接入的时候只需要更新nacos配置就可以。skywalking会定时拉取配置

如果不用配置中心,则需要修改skywalking代码,从两方面考虑

读取rule配置有两个地方,一个是oap项目启动是会加载alarm-settings.yml配置文件—这个必须要有,没有会报错

在一个后面如果使用了配置中心,会定时拉去配置

org.apache.skywalking.oap.server.configuration.api.ConfigChangeWatcher#notify

所以如果修改需要从这两个地方入手,核心的部分不动

Skywalking告警大概流程
关键节点流程
告警配置接入oap

rules:

  service_resp_time_rule:

    metrics-name: service_resp_time #指标名称

    op: ">"

    #三秒 阈值

    threshold: 3

    #四分钟---时间桶

    period: 4

    #大于等于2次---四分钟内有两分钟服务响应时间大于3秒

    count: 2

    silence-period: 1 #静默期---这个范围内不会报警

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

    only-as-condition: false

    tags:

      level: WARNING

      receivers: lisi

  service_sla_rule:

    metrics-name: service_sla

    op: ">"

    threshold: 100

    period: 10

    count: 1

    silence-period: 1

    message: Successful rate of service {name} is more than 1% in 1 minutes of last 10 minutes

    only-as-condition: true

composite-rules:

  comp_rule:

    expression: service_resp_time_rule && service_sla_rule #上面两个告警条件都满足

    message: Service {name} response time is more than 10ms and sla is more than 1%.

    tags:

      level: CRITICAL

      receivers: zhangsan

以jvm上报数据说明

APM


定义JVM一些数据指标

定义JVM一些数据指标,JVMMetric.proto文件,并且指标上传的服务,mvn package编译后会生成对应的class文件






OAP



JVM分发器

oal执行引擎会根据oal文件里面定义的jvm指标动态生成jvm指标类和对应的分发器



MetricsAggregateWorker  大概逻辑
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容