1. 首页
  2. > 资质代办 >

监控报警(有看头设置报警)

  • 写在前面
  • 本文主要内容
  • 为什么要做结果级监控
  • 应该把监控放在哪个模块
  • 关于:指标的完备性
  • 关于:异常的分类
  • 关于:“趋势”和 “异常”
  • 关于:选取最合适的视角
  • 关于:如何提纯更准确的均值
  • 关于:局部城市异常如何捕捉
  • 关于:数据太分散,如何降敏
  • 关于:均值不变,分布发生变化
  • 新探索:质变刻画

写在前面

面对复杂业务系统如何更好的做监控和报警是一个困难的话题。在滴滴,几十个系统都会直接或者间接的影响最终订单的价格,本文是在做业务治理过程中一个小总结。


本文是在滴滴的工作总结,版权属于滴滴,内容已脱敏,转载请注明出处。




本文的主要内容

根据滴滴国际化出行业务的价格监控建设实践,把一些可迁移的经验总结下来:


【面向架构】 对监控的一些认识,为什么要做结果级监控【面向研发】 提升准召率的一些实践总结



做监控的最大困惑

1、为什么我有很多监控,出了问题还是没有提前发现 (召回率)


2设置、为什么监控总误报,时间长了,我也不看了 (准确率)




为什么要做结果级监控

现在系统架构越来越复杂, 主要有两个现象,


1. 模块和接口越来越多,而且还不断累积历史废旧逻辑


2. 请求链路越来越长,甚至变成了网状的拓扑结构


所以带来的问题主要有


1. 直接或者间接影响最终价格的因素太多,过程功能级别的监控几乎无法全量覆盖


2. 功能在不断变更,之前的监控很快就要废弃或者调整


# 思考的结论 #


借鉴混沌系统治理方法,面对多因素多变量系统,很难进行全方位白盒分支级别监控,


所以需要以黑盒形式处理,从最终结果衡量正确性




应该把监控放在有哪个模块

应该在有全局数据中心处建设监控。


理论上一个比较合理的业务架构应该是 “主线型”、 “汇聚型”、 “层次型”等, 这些都有一个共同特点,那就是有集中化的数据平面,在某个位置统一的数据汇集。


   -- - - [数据出口] --- / /



关于:指标的分类

首先,一个错误的认识是想用一个指标发现所有的问题,这样只会在每个指标上都蜻蜓点水,关键特征却又会遗漏。


结论:同一个指标的不同类型异常,需要用不同方法发现


异常分类:大幅异常、局部大幅异常、局部小幅异常、个例异常




异常的类型




关于:“趋势”和 “异常”

# 误区


试图通过【大盘】来发现异常,往往陷入“误报”和“漏报”的漩涡


# 解法:


正向监控:大盘用来把控趋势发现整体异常


反向监控:明确定义出什么是异常,寻找出最大信息量有,在此基础上监控异常


# 举例【如何定义高速费异常】


订单1:总金额 100, 里程费 40, 时间费20,高速费40 → 高速费是否正常?→ 基本正常


订单2:总金额 50, 里程费 6, 时间费4,高速费40 → 大概率异常 (高速费占收入的80%)


订单3:司机高速费40,乘客总金额 30 → 异常 (高速费比乘客总额监控还大)




关于:选取最合适的视角

# 总结


横看成岭侧成峰,不同视角看数据有不同的表现,需要寻找最稳定的角度看数据


指标维度,包括数量、金额、比例


报警维度,包括大盘、品类、城市


# 场景举例:


场景1:倒挂类型,一笔可能损失好几万,


所以如果只用“倒挂订单数”,监控上几乎没有任何波动


场景2:品类之间有明显差异的,看头适合用“比例类型” ,


比如有的品类是一口价,有的是实时计价,


如果用一口价总金额或者订单量,非常容易受单量波动影响




关于:如何提纯更准确的均值

# 问题:


比如想监控整体单价是否有巨大波动,但是个别订单会造成整体趋势不稳定,进而报警也不好加,阈值加高了报不出来,阈值低了容易误报




# 方法:


提取核心特征,剔除边界噪音,让整体趋势熵更低 (如图,比如只取 3-20公里,时间大于1分钟的高质量订单。)


提纯更准确的均值




关于:局部城市异常如何捕捉

# 问题场景


比如有20个城市,只有2个城市异常时,在大盘数据上表现不明显; 如果针对每个城市都加报警又非常容易误报;


# 思路


> 寻找到一种方法,对异常数据更灵敏,对正常数据更迟钝


加权调优思路






关于:数据太分散,如何降敏

# 场景


有的数据熵比较大,本身比较分散,数据波动很大,不容易衡量异常,此时需要降敏


# 降敏方法


临近值聚类,确定一批特征值,每个点向临近值做近似


数据降敏




关于:均值不变,分布已经质变

如图,上下两个图无论是均值、总额、订单数都基本一致


但是,明显看出两个图已经发生了很大的变化,如何捕捉这类异常?


# 方法:


> 使用均值偏报警离衡量法,只统计偏离均值N倍的数据


# 实际应用


识别蜗牛单: 行程 5公里, 行驶时间是12小时


识别火箭单:行程1公里, 实际金额200元 (均值应该是6元)




新探索:质变刻画

# 出发点


是否能寻找到一种数据衡量方式,


1、当数据有 “质的变更” 时能明确反应,


2、当数据只有 “量的波动” 时处于稳定状态


# 思路


把所有参与元素进行 降敏 聚类 签名,期望效果是量的变化不会改变签名值设置,质的变化会影报警响改变聚类或者直接改变签名


# 实际应监控用


1. 如何监控 “接口协议发生质变”


比如模块间json结构,屡次发生 "看头应该是int,传递了string","应该是数组,传递了null"


2. 如何监控 “基础费费用构成发生变化”


比如原来基础费由5个费项构成,某天变成了6个费项


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123456@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息