基于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  //可视化分析语言配置

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

├── application.oal   
├── browser.oal
├── core.oal       //核心的聚合规则 
├── disable.oal
├── dotnet-agent.oal 
├── java-agent.oal  //对agent实例上报的jvm数据聚合规则
├── mesh.oal
└── tcp.oal

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

告警配置所在:

├── bin
│   ├── oapService.bat
├── config
│   ├── alarm-settings.yml

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

二. skywalking 告警规则创建演示

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

2.1 寻找监控的告警对象

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

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

基于skywalking-告警_第1张图片

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

我们寻找所需要的oal规则模型,示例所需要的在core.oal中(实现并非唯一模型):
基于skywalking-告警_第2张图片

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

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

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

  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

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

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

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

dashboard 界面结果:
基于skywalking-告警_第3张图片

钉钉群消息:

基于skywalking-告警_第4张图片

你可能感兴趣的:(java,开发语言,云原生,微服务,paas)