写点什么

基于统计的预警:同环比预警实现深度剖析

  • 2020-02-06
  • 本文字数:2708 字

    阅读完需:约 9 分钟

基于统计的预警:同环比预警实现深度剖析

一、UAV 预警功能简介

UAV.Monitor 提供了对全维监控指标的预警功能,各类型的监控指标均可配置预警策略,当预警策略被触发后,可通过邮件、HTTP 调用等方式进行通知报警,并会根据预警时间频率等对报警动作进行压制。


预警分为流式预警、统计预警以及混合预警三种。


  • 流式预警会对采集到的每一个监控指标数据进行预警判断,达到实时预警的目的;

  • 统计预警是对指标在固定时间段统计值的预警,通常都是定时进行预警判定;

  • 混合预警则是将流式预警与统计预警结合进行预警。


同环比预警就属于统计预警的一种。

二、什么是同环比预警

首先介绍一下同环比的概念,同环比描述的是统计数据的增/降幅度,即某一时间段(本期)的统计结果与之前另一相同长度时间段(基期)的比较结果。同比表示的是本期与上一个同期的比较,比如今年 4 月与去年 4 月比较,今天 8 点到 9 点与昨天 8 点到 9 点比较;环比表示的是本期与上期的比较,如今年 4 月与今年 3 月比较,今天 8 点到 9 点与 7 点到 8 点比较。而同环比预警则是对一段时间内监控指标的统计结果同比上一同期(或环比上期)的增/降幅进行预警,即指标的同/环比计算结果超过了策略指定的增/降幅度则进行报警。

三、同环比预警的实现

3.1 预警策略

预警条件与动作由预警策略定义,预警策略的结构如下:


strategy  
{
"type":"",
"instances":[],
"conditions":[],
"relations":[],
"actions":[]
}
condition
{
"expressions":[]
}
复制代码


一个预警策略(strategy)包含多个预警条件(condition),condition 是最小的预警判定元,每个 condition 可包含多个表达式(Expression);预警表达式定义了单一预警条件,表达式又分为统计(stat)表达式和流式(stream)表达式两种,分别对应统计预警条件与流式预警条件;relations 中各 relation 对应各 condition 中策略表达式 Expression 的逻辑判断关系。instances 表示该预警影响的实例,actions 表示预警触发后的报警动作,type 表示预警策略的类型,type 根据包含的表达式种类分为含统计表达式的统计(stat)策略和只含流式表达式的流式(stream)策略。

3.2 同环比预警表达式定义

同环比的计算公示为:同/环比值=本期数-基期数,同/环比率=(本期数-基期数)÷基期数×100%。根据计算公式,我们需要的输入条件是:


1)需预警的指标名。


监控的各项数值型指标均可作为预警的指标,如 cpu、访问量等。


2)本期时间段与基期时间段。


由于预警是一个比较实时性的动作,所以我们把时间段限制在了 24 小时内,对于大于 24 小时比如一周或一个月的统计值或同环比,以周报或月报的形式直接统计效果更好。基期时间则根据同比周期或环比间隔计算得出。


3)指标在时间段内统计值的计算方式。


同环比比较的是指标在一段时间内的统计值,统计方式有求和、求平均等。由于 UAV 的监控历史值都存储在 opentsdb,可通过 opentsdb 自带的聚合操作进行统计值的计算。


4)预警阈值


增/降幅上限,可设置为数值型阈值或百分比阈值。


同环比预警属于统计预警,所以同环比预警表达式也是统计(stat)类型的表达式。综上,同环比预警表达式结构如下。


expression  
{
"type":"stat",
"arg":"" //预警指标
"time_from":"" //初始时间段-from
"time_to":"" //初始时间段-to
"interval":"" //环比间隔(同比则此项为空)
"unit":"" //同比周期(环比则此项为空)
"aggr":"" //统计方式
"upperLimit":"" //比值上限
"lowerLimit":"" //比值下限
}
复制代码

3.3 预警策略判定原理

预警模块通过流式条件或定时任务触发对预警表达式的判定,过程如下


1571884305168017985.jpeg


当预警策略判定被触发时,各 condition 独立进行判定,遍历其中的各个 Expression 进行判定,然后将 Expression 判定结果按 relation 定义的逻辑关系进行组合判断,若结果为 true 则将结果汇总到策略判定结果,然后整合策略判定结果进行报警。

3.4 同环比预警判定原理

同环比预警属于统计预警的一种,所以同环比的预警流程就是统计预警的预警流程,预警模块启动一个用于统计策略判定的 Timer,每分钟(因为统计表达式的时间都是以分钟为单位,所以每分钟轮询一次即可)轮询一次策略,并触发统计策略的判定。


1571884312968007796.jpeg


当策略被触发后,便会遍历各 condition 下的表达式,进行一一判定,定时任务触发表达式判定的规则如下。


1571884320428014389.jpeg


当最小判定元 condition 内只有统计表达式时,遍历判定各统计表达式,首先会判定是否是统计表达示的判定时间,同环比表达式根据属性值 time_from,time_to 和环比间隔或同比周期来确定。若不是判定时间,考虑到多个统计表达式的组合判定情况时,各表达式的判定时间可能不一致,我们会取出缓存中上次的未过期的判定结果返回。若是判定时间,则进行同环比计算判定,构造 opentsdb 查询语句调用 API 查询本期值与基期值,计算得出同/环比值(率),并与阈值进行比较得出判定结果,结果会缓存到 redis,这里也会将此 condition 的判定置为有效,因为如果 condition 里的表达式都未达到判定时间,这次判定其实是无效的。


若 condition 内既有统计表达式又有流式表达式(即为混合预警)时,统计表达式会进行正常的判定运算操作,但对于定时任务触发的流式表达式则直接返回 false,因此 condition 判定结果也为 false。


混合预警的最终判定是在流式条件触发预警策略时产生,condition 中的流式表达式的判定会正常进行,统计表达式的判定过程如下


1571884327598090488.jpeg


如果流式条件的触发时间在表达式的判定时间(误差一分钟)内,会直接从缓存获取由定时任务触发策略时计算得出的未过期的判断结果返回,返回结果便可与流式表达式的结果一同得出混合预警的结果。


判定结果返回后,会根据预警表达式信息及判定结果生成报警信息。如图


1571884335658035393.jpeg


以上便是同环比预警的完整实现过程。

四、同环比预警的应用

实时预警关注的是系统的瞬时状态,同环比预警则反映了指标的变化趋势以及与过去同期相比的波动状态。比如系统服务访问量异常检测,由于系统量可能根据时间有一定的规律性,如周一到周五访问量大,周末访问量小。若采用流式预警只能定义一个预警阈值,不能根据不同时间设置不同的预警阈值,这时可以在业务高峰时间对系统访问量指标配置按周同比预警,便可对业务访问量异常做出及时有效的报警。


有时单一的同环比预警也不足够,比如刚才的情况下,如果我们不仅关心访问量的相对波动还需要报警时的平均响应时间大于某一阈值才报警,这时就需要与流式预警进行结合预警。


同环比预警丰富了预警体系,与流式预警相结合更有助于对系统异常与业务异常的及时精确发现。


下载 UAVStack 的源码(https://github.com/uavorg)


本文转载自宜信技术学院公众号。


原文链接:http://college.creditease.cn/detail/313


2020-02-06 21:331121

评论

发布
暂无评论
发现更多内容

ConceptDraw MINDMAP for mac(思维导图软件) 15.0.0.296中文激活版

mac

苹果mac Windows软件 ConceptDraw MINDMAP 思维导图绘制软件

万能音视频转换器Permute 3最新中文版

胖墩儿不胖y

Mac软件 音频处理工具 音频格式转换器

开放原子开源基金会联合主办的2023 CCF中国开源大会正式开幕

开放原子开源基金会

开源 CCF

用友BIP智能分析资产包正式发布,助力企业智能化决策!

用友BIP

智能分析

构建一个PWA应用的核心技术有哪些

Onegun

小程序 PWA

Java类加载机制详解 | 京东云技术团队

京东科技开发者

Java spi 类加载机制 企业号10月PK榜

零代码开发、可视化界面!飞桨AI Studio星河社区带你玩转Prompt应用

飞桨PaddlePaddle

程序员 开发者 插件开发 Prompt

1024 特别企划|揭秘 StarRocks 社区背后的神秘力量(内涵福利)

StarRocks

开源社区 StarRocks

重读 Effective JAVA(二)- 精进自己的 JAVA 技术

xfgg

Java

利用观测云的 RUM 追踪和分析一个 VIP 用户的旅程

观测云

可观测性 用户体验分析

ETL工具与数据处理的关系

RestCloud

数据处理 ETL

ConceptDraw PROJECT for Mac(项目管理软件) 14.0.0.302完整激活版

mac

项目管理工具 苹果mac Windows软件 ConceptDraw PROJECT

英特尔以创新边缘AI技术赋能未来智慧城市建设

E科讯

Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队

京东科技开发者

Java centos cron 企业号10月PK榜

SpringBoot自动配置原理解析 | 京东物流技术团队

京东科技开发者

spring-boot 自动配置 企业号10月PK榜

实测亚马逊 AI 编程助手 Amazon CodeWhisperer

全栈若城

用友全球司库十问(五)| 企业如何主动管理资金流动性?

用友BIP

全球司库 流动性管理

架构训练营 模块三作业

Chong Liu

LLM在text2sql上的应用 | 京东云技术团队

京东科技开发者

人工智能 LLM 企业号10月PK榜 text2sql

生成式 AI 如何释放开发者的生产力?

LigaAI

人工智能 程序员 技术管理 AIGC 研发效能管理

第10期 | GPTSecurity周报

云起无垠

携程商旅伙伴大会:构筑全球影响力计划,建立全球TMC赋能战略

携程商旅

KubeBlocks完成阿里云PolarDB数据库产品生态集成认证

阿里云数据库开源

polarDB PolarDB-X KubeBlocks

Ready to go: IPQ4029/IPQ4019 with IPQ8072- Connect more and enjoy faster

wifi6-yiyi

wifi IPQ4019 IPQ8072 ipq4029

介绍SDK(C++版)使用方法

矩视智能

深度学习 机器视觉

开放原子开源基金会理事长孙文龙一行赴拓维信息参观交流

开放原子开源基金会

开源

MySQL常用函数:从字符串处理到日期时间操作一应俱全

小齐写代码

语音识别技术在医疗健康领域的应用与挑战

来自四九城儿

Mac电脑图像处理AI软件 Topaz Photo AI最新激活版

mac大玩家j

Mac软件 图像处理软件 图像编辑处理

基于统计的预警:同环比预警实现深度剖析_语言 & 开发_UAV_InfoQ精选文章