当前位置:   article > 正文

skywalking告警入门_skywalking自定义告警规则

skywalking自定义告警规则

skywalking 告警

skywalking的告警模块属于 可视化三个模块(metric、log、trace)中的metric的功能扩展,是以度量为基础。skywalking自己定义的可视化语言OAL,基于OAL(Observability Analysis Language) 来分析上报的数据。OAL语法

一. skywalking alarm Server

skywalking将上报的服务数据按照领域划分,通过不同领域的数据记录服务不同层次状态。而oal就是作用于领域对象的语言,oal是按照指定规则写出的数据模型,skywalking内部会根据模型作用的领域实例id进行聚合。告警是以聚合结果为基础,按照指定的触发规则。

下载好的skywalking中的tar包,文件夹如下路径:

├── bin
├── config
│   ├── envoy-metrics-rules
│   ├── fetcher-prom-rules
│   ├── lal //日志分析语言
│   ├── log-mal-rules
│   ├── meter-analyzer-config
│   ├── oal  //可视化分析语言配置
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在oal文件夹有一些几个配置文件:

├── application.oal   
├── browser.oal
├── core.oal       //核心的聚合规则 
├── disable.oal
├── dotnet-agent.oal 
├── java-agent.oal  //对agent实例上报的jvm数据聚合规则
├── mesh.oal
└── tcp.oal
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

根据不同的文件来做区分,便于管理,Java应用常用到的core.oal、application.oal 这两个文件多些,这些文件在启动skywalking oapServer时会被加载,也支持分布式配置的方式进行加载。

告警配置所在:

├── bin
│   ├── oapService.bat
├── config
│   ├── alarm-settings.yml
  • 1
  • 2
  • 3
  • 4

所有的告警规则,都在alarm-settings.yml中。

二. skywalking 告警规则创建演示

所演示的skywalking告警示例,是对我们服务的一个http 协议的web接口访问量进行监控,并且访问量达到一定的数量时进行钉钉发群消息告警。

2.1 寻找监控的告警对象

我们可以通过skywalking的可视化控制面板,找到我们需要监控的接口,具体如何使用控制面板可以参考一下文档:skywalking使用文档中控制面板模块

如下图我们找到对应的接口:

在这里插入图片描述

可以找的我们的领域对象是 endpoint,对应的endpointName是POST:/account/login,关于http如何在定义endpoint可以参考一下文档:Group Parameterized Endpoints

我们寻找所需要的oal规则模型,示例所需要的在core.oal中(实现并非唯一模型):
在这里插入图片描述

endpoint_cpm = from(Endpoint.*).cpm();

说明:cpm(call per minutes)是 吞吐量指标。
  • 1

对应的告警规则配置如下:

  endpoint_post-paas-login_cpm_rule:
    metrics-name: endpoint_cpm
    include-names: 
      - POST:/account/login in paas-acccount|test|env1
    threshold: 2
    op: ">"
    period: 1
    count: 1
    silence-period: 1
    message: call per minute api {name} is more than 2 in 2 minutes of last 1 minutes
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

通过include-names选择作用的endpoint,include-names配置参数规则参考如下:alarm的Entity name模块的说明。

特别说明:include-names 下的参数配置,需要按照规则配置
  • 1

告警规则以后重启oapServer服务,然后调用测试接口(服务已经接入Javagent skywalking代理上报),然后是测试接口触发告警阈值。告警结果我们可以通过skywalking可视化的dashboard界面的告警、事情导航栏查看,也可以通过配置好的钉钉群消息查看。

dashboard 界面结果:
在这里插入图片描述

钉钉群消息:

在这里插入图片描述

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

闽ICP备14008679号