QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

一个系统,搞定闲鱼服务端复杂问题告警 - 定位 - 快速处理(二)

  • 2019-12-19
  • 本文字数:1904 字

    阅读完需:约 6 分钟

一个系统,搞定闲鱼服务端复杂问题告警-定位-快速处理(二)

系统架构

我们认为这样一套问题自动定位的系统一定要满足 4 个目标,这同时也是整个系统的难点所在。


  • 准(定位准确率不亚于开发人员)

  • 快(定位结果早于监控发现)

  • 简单(从问题发现到定位结果之间的最短链路)

  • 自动化



围绕着这 4 大目标,我们实现了上面这样一套完整的定位系统,实现了从告警->定位->快速处理这样一套完整闭环。自下而上划分为 4 个模块,下面讲一下每个模块解决的问题以及其难点。

数据采集

数据采集模块主要负责埋点数据的采集与上报,需要解决两个问题:


  • 海量数据。线上的埋点数据每时每刻都在产生,其数据量可达到 80G/ 分钟。

  • 采集时延。快作为整个系统追求的一大目标,数据采集需要满足低时延。

  • 可扩展指标。随着模型的不断演进完善,需要实现灵活的增加采集指标( cpu/gc/gc 耗时/线程数等)。

  • 采用 SLS+ 自定义插件库来实现线上流量埋点数据的采集与上报。SLS 是阿里云研发针对日志类数据的一站式服务,其生命周期管理( TTL )以及极低的存储成本可以很好的解决海量数据带来的成本问题。

实时计算

实时计算以数据采集的输出作为输入,负责对数据进行一轮预处理,包括链路数据的关联(请求都有唯一标识,按照标识 group by ),数据清洗(只选取需要的数据)以及事件通知。


  • 计算延时。从拿到数据到最后过滤输出,要尽可能压缩计算延时来提升整个系统的时效性。

  • 多数据源协同。数据来源于底层不同的数据源,他们之前对应着不同的到达时间,需要解决数据等待问题。

  • 数据清洗。需要有一定的策略来进行一轮数据清洗,过滤出真正有效的数据,来减少计算量以及后续的存储成本。

  • 存储成本。虽然经过了一轮数据清洗,但是随着累积数据量还是会线性增长。

实时分析

当收到事件通知后根据实时计算产出的有效数据进行自动化的分析,输出问题的发生路径图。需要解决:


  • 实时拓扑 vs. 离线拓扑。实时拓扑对埋点数据有要求,需要能够实时还原调用链路,但依赖采集数据的完整度。离线拓扑离线生成,不依赖采集数据的完整度,但不能准确反应当前拓扑。最后选择了实时还原拓扑方式保证准确率。

  • 数据丢失。虽然实时计算中有解决数据协同等待的问题,但无法彻底解决数据的丢失问题(数据延时过大/埋点数据丢失),延时以及丢失数据需要采取不同的处理策略。

  • 分析准确率。影响准确率的因素很多,主要包括数据完整度以及分析模型的完备度。

聚合展示

按照时间窗口对问题发生路径进行实时聚合,还原问题发生时的现场。将监控,告警和诊断链路进行了互通,最大化的缩短从问题发现到结果展现的操作路径。


  • 实时聚合 vs. 查询时聚合。查询时聚合性能差但是很灵活(可以根据不同的条件聚合数据),反之实时聚合牺牲了灵活性来保证查询性能。这里我们选择保证查询性能。

  • *并发问题。采用实时聚合首先要解决的是并发写(线上集群对同一个接口的聚合结果进行修改)。最后采取将图拆解成原子 key,利用 redies 的线程安全特性保证线上集群的写并发问题。

  • *存储成本 vs. 聚合性能。为了解决并发问题,我们利用 redis 的线程安全特性来解决,但带来的一个问题就是成本问题。分析下来会发现聚合操作一般只会跨越 2~5 个窗口,超过之后聚合结果就会稳定下来。所以可以考虑将聚合结果持久化。

效果

系统上线以来经受住了实践的检验,故障以及日常问题的定位效率得到显著提升,并获得了稳定性的结果。将日常问题/故障定位时间从 10 分钟缩短到 5s 以内,以下是随机选取的两个真实 case 。


案例 1:闲鱼发布受影响,监控系统发现商品发布接口成功率下跌发出来告警信息,点击告警诊断直接跳转到问题现场,发现是因为安全某个服务错误率飙升导致,整个过程不到 5s。



案例 2: 首页因为单机问题受到影响,闲鱼首页因为单机 gc 问题抖动触发大量告警信息,秒级给出问题发生路径。根据诊断路径显示搜索单机出现大量异常。

总结

目前整个系统主要聚焦服务稳定性相关的问题定位,仍然有许多场景有待覆盖,信息有待补全,措施有待执行,定位只是其中的一环。最终目的一定是建设问题定位,隔离,降级,与快速恢复这样一个完整闭环。要想实现这样一个完整闭环,离不开底层各个子系统的数据建设,核心在于两点一面的建设:


底层数据建设。完备的数据支持一定是整个系统能够发挥价值的前提,虽然现阶段很多系统在产出这方面的数据,但仍然远远不够。


完备的事件抽象。数据不仅仅局限于请求产生的埋点数据,其范围应该更为广泛(应用发布,线上变更,流量波动等),任意可能对线上造成影响的操作都应该可以抽象成一个事件。


知识图谱的建立。仅仅有完备的事件并没有多大的价值,真正的价值在于把这些事件关联起来,在问题/故障发生时第一时间还原现场,快速定位问题。


本文转载自淘系技术公众号。


原文链接:https://mp.weixin.qq.com/s/gDlCjHv4AovLvP-4veYojw


2019-12-19 18:201100

评论

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

【活动报名】数据存储降本增效应用实践 PolarDB × ScaleFlux 线下 Meetup 来袭!(杭州站)

阿里云数据库开源

数据库 postgresql 阿里云 开源 polarDB

Go 闯进 Top 10、C++ 再次被 Java 反超,TIOBE 3 月榜单发布

博文视点Broadview

GreptimeDB v0.1 发布|原生支持 Python, PromQL 和对象存储

Greptime 格睿科技

云原生 时序数据库 PromQL

还在curd吗?封装属于自己的Spring-Boot-Starter

做梦都在改BUG

Java spring Spring Boot Starter

Axure9和Axure10哪款好?有什么区别呢?

Rose

原型设计 Axure RP

DAPP质押挖矿项目技术开发功能丨DeFI质押挖矿系统开发详细方案

I8O28578624

天池 DeepRec CTR 模型性能优化大赛 - 夺冠技术分享

阿里云大数据AI技术

人工智能 深度学习

15 英寸 MacBook Air 和黄色 iPhone 14 在路上吗?

Rose

apple

小程序无需编程,体验IoT物联网平台-物模型开发——设备接入类

阿里云AIoT

物联网

gRPC请求超时和异常处理

江南一点雨

Java gRPC

React Hooks源码深度解析

京东科技开发者

函数 React Hooks 企业号 3 月 PK 榜

IoT物联网时代,如何优化你的网络- DNS域名解析服务——设备接入类

阿里云AIoT

缓存 网络协议 物联网 域名解析 调度

Matlab实现图像分割

timerring

图像分割

如何规避近年频发的数据安全事故?

Zilliz

云原生 云服务 数据安全

精准医疗迎数字化新机遇,百奥利盟携手阿里云为创新生物药提速上市

云布道师

阿里云

BetterSnapTool for Mac 帮你整理窗口,提升效率

理理

BetterSnapTool 苹果电脑 窗口布局

PS画画工具推荐:ps怎么黄金分割构图

理理

黄金分割插件 GoldenCurve插件 PS插件下载

贴合运维业务场景的告警聚合实现——以Zabbix为例

观纵科技

zabbix 运维监控 IT运维

详解数仓中sequence的应用场景及优化

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 3 月 PK 榜

如何从5万设备中找出频繁掉线设备,长期不在线的设备?——设备管理运维类

阿里云AIoT

如何基于 Skywalking 来快速搭建一套应用性能监控平台

观纵科技

APM 全链路监控 Skywalking

苹果M1/M2电脑安装Lightroom Classic 2022(LRC2022) 后打开闪退怎么办?

理理

m1 LRC2022 闪退 M2 苹果软件

Cloud Kernel SIG月度动态:发布 ANCK 新版本及 Plugsched v1.2.0

OpenAnolis小助手

内核 龙蜥社区 sig anck CVE修复

JavaScript 对象管家 Proxy

devpoint

JavaScript Proxy ECMAScript 6

Jasper狂飙:AIGC现象级应用的增长秘笈

OneFlow

人工智能 深度学习 ChatGPT

mac office 365 商业专业版附升级工具

Rose

Office 365

苹果软件Noir:为所有网站应用深色模式

理理

Safari 扩展 Noir – Dark Mode 暗模式

共建区块链生态,旺链科技获颁2022年度FISCO BCOS产业应用合作伙伴

旺链科技

区块链 区块链+

企业全球化出海技术体系建设实录【专题合集】

阿里技术

技术专题合集 全球化技术能力

高效学 C++|组合类的构造函数

TiAmo

组合 C++

IoT物联网平台-规则引擎SQL数据格式详解——设备管理运维类

阿里云AIoT

sql 物联网 数据格式

一个系统,搞定闲鱼服务端复杂问题告警-定位-快速处理(二)_文化 & 方法_淘系技术_InfoQ精选文章