10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

故障定位场景下的数据可视化实践

  • 2019-09-10
  • 本文字数:2697 字

    阅读完需:约 9 分钟

故障定位场景下的数据可视化实践

百度拥有上百条产品线,数十万的服务,每个服务时时刻刻都在产生着海量的监控数据,形成的监控项规模总数已达数十亿。面对如此海量的数据,在日常运维(如故障诊断、成本分析、性能优化等场景)过程中,传统的统计图表难以有效直观地展示如此庞大的数据。因此,优秀的监控数据可视化产品就呼之欲出,他既要数据准确、全面、时效性高,也需要提升用户的使用体验,使其能在茫茫数据中一眼就能发现想要观察的数据。


那么怎么做才能适应用户需求、完成精准展示,同时又能挖掘数据价值呢?下面我们从故障诊断的场景出发,来看百度智能监控平台是如何充分利用数据可视化武器来解决实际业务问题的。

故障定位可视化思路

在标准的故障处理流程中,故障定位一般可分为两个阶段:


  • 故障止损前:期望可以快速获得可用于止损决策的信息,做出相应的止损操作使得服务恢复。比如通过确定故障范围,调度流量绕过故障机房或摘除故障实例等。

  • 故障止损后:仍需要进一步找到导致故障的深层次原因,确定故障根因,将线上环境恢复到正常状态。


基于上面的需求,可以总结为以下三个定位的层次,从整体到局部逐步缩小故障范围,找到故障根因:


1.全局问题定位:快速确认线上状态,缩小故障判定范围。为可能的止损操作提供判断依据。本文会介绍如何构建一个全景分析仪表盘。


2.细分维度定位:通过分析地域、机房、模块、接口、错误码等细分维度,进一步缩小问题范围,确定需要排障的目标模块、接口等。本文会介绍如何基于多维度数据可视化解决维度数量暴增带来的定位难题。


3.故障根因确认:一些情况下,问题的根因需要借助除监控指标之外的数据进行分析。例如上线变更、运营活动导致的故障。本文针对导致故障占比最高的变更上线类故障进行分析,看如何快速找到可能导致故障的变更事件。

全景掌控缩小范围

对于一个服务乃至一条产品线而言,拥有一个布局合理、信息丰富的全景监控仪表盘(Dashboard)对于服务状态全景掌控至关重要,因此在百度智能监控平台中,我们提供了一款可定制化的、组件丰富的仪表盘服务。


用户可以根据服务的特征,自由灵活的组织仪表盘布局,配置所需要展示的数据信息。



如上图所示,我们可以按照问题定位的思路,将服务整体的服务可用性情况、分功能可用性情况、分模块的核心指标、流量的同环比对比、分 IDC 的流量对比等,依次通过丰富的可视化组件进行呈现。使得在收到报警时,可以快速将故障缩小到具体功能、模块、接入流量、机房级别。

深入数据确定根因

在故障处理过程中,全景数据仪表盘为我们缩小了故障定位的范围,但大多数的根因仍然隐藏在数据的细分维度中。由此多维度分析的重要性就体现出来了。常见的多维度分析包括如下几种场景:


  • 单维度取值对比分析:针对同一个维度的不同取值进行对比分析,例如确定流量下跌出现在哪个省份。

  • 多维度关联分析:分析两个甚至更多维度互相作用后数据的分析,例如如何确定一个下跌是机房级别还是模块级别。

  • 维度下钻分析:一些维度包含多个层级,例如省份、城市等相关联维度的逐层下钻定位。


我们针对这些场景,设计了相应的解决方案。

单维度取值对比分析

维度取值对比分析是一种最常见的细分维度定位方式。对于同一个维度下取值数量较少的情况,可以通过多维度趋势图和饼图等可视化方式进行快速的分析,查看不同维度取值的取值状态,以及占整体比例情况。而对于维度取值数量多,且不同取值数量级差距较大情况(例如分省份的流量下跌判定),使用饼图或趋势图很容易把流量较小省份的信息隐藏掉。这种场景下,我们可以通过维度取值自动展开功能,分别查看每个省份的状态。


多个维度关联分析

细分维度的故障所带来的表象可能会在多个维度均有表现,比如服务整体的访问拒绝上升,我们会发现分机房的拒绝量上升,也看到分模块的拒绝上升。那么我们如何确认故障的根因是来源于某个机房还是某个模块,还是这两者的交叉维度,即某个机房的某个模块导致的问题。


矩阵热力图可以解决这一问题。将需要做分析的两个维度分别作为横纵坐标,通过阶梯的阈值颜色将对应交叉维度的取值展现再坐标上。我们便可非常直观的看到这这两个维度对于整个业务的影响情况,如下图所示:



我们可以看到,从纵向的分模块维度,可以看到 Module 4 在多个机房都有明显的访问拒绝情况,而在横向分机房维度,则没有明显的特征。则说明是 Module 4 模块导致的问题。

嵌套维度下钻分析

类似于国家-省份-城市的行政区域划分,区域-机房-机器的服务部署划分,我们可以看到很多维度之间存在着层次嵌套的关系。我们故障定位的思路也是如此,从整体到局部逐步分层下钻定位。


我们提供了多维度展开报表功能支持这种下钻分析。



例如我们怀疑是某几台服务器导致的拒绝量上升,我们可以基于多维度统计报表,点击排序找到拒绝最大的区域,然后依次展开找到拒绝最大的机房和机器。


点击详情后,我们就可以跳转到机器对应的页面,查看对应机器的详细数据来进行定位。


找寻关联事件定位

根据历史经验,大多数的线上故障都是由于变更操作所引起的,包括程序、数据、配置等变更事件,增删机器实例、执行预案等运维事件,甚至包括可能引发流量突增的活动运营事件。对于某些体积庞大的产品线,开发和维护人员众多,以上事件的发生更是千丝万缕、错综复杂。


面对这个问题,我们设计并推出了一种可以解决这种问题的通用性组件——事件流图。



通过事件流图,可以快速筛选出故障的前后时间,发生或发生中的事件,每个事件通过色块的长短位置,展示了开始结束时间以及持续时长。我们可以快速的分析出对应时间的故障可能是由于某些操作开始或操作完成引发的。


对于部分业务线,同一时间段发生的事件可能有上百甚至上千条,我们提供便捷的筛选功能来解决这一问题。通过事件类型标签,打开或关闭某一类事件的展示,优先排查最有可能的根因。同时对于每一类事件的支持细分筛选,用户可以自定义事件筛选的条件,支持多项选择、文本模糊匹配等多种方式,使得定位范围一层层缩小,最终找到问题根因。

总结

以上我们介绍了百度智能监控平台在全局故障分析、细分维度定位、事件关联定位三个故障定位阶段中进行的数据可视化探索。当前百度智能监控平台已成为百度各大业务可用性保障必不可少的利器。


数据可视化能力的优势不仅仅在故障定位场景中由突出体现。还能应用在更多的数据分析领域。我们未来会进一步介绍百度智能监控平台在应用性能分析、商业数据分析等领域的实践成果,欢迎各位继续关注。


作者介绍:


运小炜,百度高级研发工程师,负责百度智能监控平台(赛亚平台)的设计和研发工作,在系统监控、业务监控等方向有广泛的实践经验。


本文转载自公众号 AIOps 智能运维(ID:AI_Ops)。


原文链接:


https://mp.weixin.qq.com/s/C09VxmsgdKWwYkIcsgHf4Q


2019-09-10 11:073731

评论

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

java: 无法访问org.springframework.context.ConfigurableApplicationContext

刘大猫

人工智能 数据挖掘 算法 数据分析 大模型

2025 WAIC探展合合信息展台:AI鉴伪技术洞察“看不见”的伪造痕迹

猫头虎

人工智能 OCR OCR识别 ai鉴伪

网站卡顿被攻击?EdgeOne 十分钟接入指南:安全加速一体化落地实战

六月的雨在InfoQ

CodeBuddy首席试玩官 CodeBuddyIDE AIIDE 边缘安全加速平台 EO

大数据-64 Kafka 深入理解 Kafka 分区与重分配机制:高并发与高可用的核心 实机测试

武子康

Java 大数据 kafka 分布式 消息队列

企业在黑龙江做二级等保测评,一般要准备哪些材料?

等保测评

超融合架构:数字化转型的万能钥匙?这些场景适用!

智驱前线

超融合架构

小屏幕大影响:为功能手机开发Web应用的被遗忘艺术

qife122

移动开发 功能手机

黑龙江等保测评结果与企业的信用、资质有何关联?

等保测评

可定制NLP工具包spaCy与LLM集成技术解析

qife122

自然语言处理 开发者工具

超融合架构:破解传统 IT 困局的关键引擎

智驱前线

IT 超融合架构

NextAuth.js v5迁移指南与实战示例

qife122

迁移指南 NextAuth.js

基于AI的课程内容生成系统技术解析

qife122

系统架构 生成式AI

黑龙江的二级等保和三级等保,在保护要求上有啥不一样?

等保测评

百度搜索PC端全量上线系列AI功能  AI搜索月活已超3.22亿

极客天地

使用spaCy检测编程语言的NLP技术解析

qife122

自然语言处理 编程语言检测

深度Ritz方法的全面误差分析

qife122

深度学习 偏微分方程

语音情感分析技术解析

qife122

语音分析 实时推理

【AI编程】让Codebuddy改写《浪浪山小妖怪》,结果写出了打工人血泪史

卷福同学

什么是真正的Monorepo?深入解析单一代码仓库的利与弊

qife122

版本控制 软件开发

一分钟读懂超融合架构 | 轻松干货

智驱前线

超融合架构

GPT-5技术解析:多版本模型与软件生成能力

qife122

人工智能 代码生成

2012年9月安全公告网络研讨会问答与幻灯片集锦

qife122

Visual Studio 安全公告

超融合:企业最关心的那些事

智驱前线

超融合

CANN与智谱GLM强强联合,国产AI加速迈向端云协同

极客天地

40岁程序员同事被撸下技术Leader后,我们去灵隐寺聊了聊出路及副业销售18万的操作

陆通

程序员 大龄程序员 就业 副业搞钱

Intigriti Bug Bytes

qife122

漏洞挖掘 漏洞赏金

性能优化之母:为什么说“方法内联”是编译器优化中最关键的一步棋?

poemyang

编译原理 Java虚拟机 JIT编译器 #java

京东商品列表API秘籍!轻松获取商品列表数据

tbapi

京东API 京东商品列表API 京东数据采集 京东数据分析

超融合架构:中小企业数字化转型的利器

智驱前线

超融合架构

数据中心升级十字路口:超融合架构,是理想路径还是现实考量?

智驱前线

超融合架构

基于 WebGL 的数字孪生项目

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

故障定位场景下的数据可视化实践_文化 & 方法_运小炜_InfoQ精选文章