优维「Easy分析」:一款故障根因分析小神器

微服务系统异常检测和根因定位 方法综述 CSUR22 - Anomaly Detection and Failure Root Cause Analysis in (Micro) Service-Based Cloud Applications: A Survey 基于(微)服务的云应用中的异常检测与故障根源分析:综述 总结 到目前(2022),学术界故障检测和根因定位方法的综述 当前的异常检测技术,都需要一个baseline去构建预知识。当线上执行差距过大(并发压力、环境、基础测试集构建错误等),会造成检测不准确 根因定位技术:各有千.. 阅读详情

图片

背 景

随着微服务架构的普及,现代企业的IT基础设施已经变得越来越复杂。单一的服务可能有多个下游依赖,而这些依赖又可能有自己的子依赖,和主机资源的依赖。在这样的环境中,当某个服务发生故障,确定具体的原因变得尤为困难。传统的故障排查方法,如手动检查日志或询问开发团队,既耗时又不一定能找到真正的根源。

此外,随着DevOps和持续集成/持续部署(CI/CD)的普及,应用的发布频率大大增加,这使得发布引起的服务中断变得更为常见。同时,资源和基础设施的动态性也为故障诊断带来了挑战。

为了应对这些挑战,优维设计了“Easy分析”服务故障根因分析工具,旨在为技术团队提供一个集成、自动化的解决方案,帮助其迅速、准确地定位服务故障时的原因。

下面,从具体场景出发,详细介绍服务故障根因分析工具。

1

应用发布导致的服务故障

1.1 概述

应用发布可能导致服务运行出现不稳定或其他未预期的影响。当服务发出告警时,本功能将自动分析告警指标,检测服务或其下游服务在最近是否发生过变更。

1.2 核心功能

  • 变更检测:当服务告警时,系统会自动检测与告警相关的服务是否近期有变更事件,如启动、关闭、升级或重启等。

  • 双态部署事件联动:与双态部署系统紧密集成,获取最新的部署和变更事件信息。

  • 告警与变更关联:为告警事件提供直接与变更事件的关联,帮助团队快速确定是否有发布活动导致的故障。

  • 消费CMDB数据:根据cmdb的服务相关的模型,自动关联下游服务的变更事件

1.3 场景说明及配置

假设微服务集群中,提供了一个名为flounder_metric的服务。服务的请求一般是从api_gateway接入到集群中,并且基于url路由至具体的应用组件来处理请求。因此,在这个场景中,存在这样一个调用关系:api_gateway -> flounder_metric

在服务监控中,我们会对flounder_metric的接口进行拨测。配置的步骤如下:

  • 建立内网拨测策略,指定监控的应用是「http-logic.api_gateway」,它是api_gateway应用的服务标识;

  • 配置关于flounder_metric服务的接口,在变量定义中,通过$.subservices.ip会自动获取到服务下子服务的IP地址。

图片

保存后即可。

此时配置基于detect_code的告警规则,即可完成对该接口的监控。

1.4 故障触发和根因分析

我们人为触发一个服务告警,通过双态部署,关闭flounder_metric服务。

图片

稍后,将触发一个拨测告警:

图片

我们通过事件详情,点击故障分析:

图片

此时将看到故障分析页面,让我们来解释一下:

图片

上方是告警事件的告警对象和告警指标持续的时间,可以看到告警持续时间范围是 11:55~12:04。

接下来就是根因分析的结论,一共发现1个结论,和应用发布的变更相关。具体来说,有两个分析:

  • http-logic.api_gateway有告警事件,没有变更事件,说明不是api_gatewaya变更导致;

  • 由于api_gateway的下游是flounder_metric服务,而该服务在12:00分发生了停止操作,进而触发了告警,因此分析为:下游HTTP服务http-logic.flounder_metric的变更导致的故障(这也是此次故障的真正原因)。

1.5 结论

在微服务架构中,服务间的相互依赖和频繁的应用发布行为可能会导致复杂的故障情况。在本场景中,通过"服务故障根因分析"工具,我们成功地自动检测到flounder_metric服务的停止操作是导致api_gateway服务拨测告警的直接原因。该工具能够智能地关联告警事件与近期的应用变更,准确快速地定位到真实的故障原因。

此次案例展示了"服务故障根因分析"工具的核心功能,即自动识别与故障相关的变更,并为技术团队提供明确的、数据驱动的根因分析。此功能大大减少了故障诊断时间,并提高了故障恢复的效率。

2

依赖资源高负载导致的服务故障

2.1 概述

服务的性能和稳定性可能受到其运行环境的影响,特别是当它依赖的资源或子服务处于高负载状态时。本功能提供了与资源负载告警的自动关联能力,帮助识别故障的根本原因。

2.2 核心功能

  • 资源负载告警关联:当服务延迟或其他性能指标出现问题时,系统会自动检测与该服务关联的子服务部署实例主机是否有高负载告警。

  • 直观的负载影响分析:为用户提供一个清晰的视图,展示服务与其依赖资源之间的关系,以及哪些资源的高负载可能影响了服务的性能。

  • 资源性能指标对比:允许用户对比服务性能指标与资源负载指标,例如,当服务延迟增加时,可以立即查看其所在主机的CPU或内存使用情况。

2.3 场景说明及配置

假设微服务集群中,提供了一个名为cmdb_service的服务,并且对它的延迟做监控。我们设定SLO是10ms,并且手动触发系统高负载,来审视根因分析的准确性。

为了实现这个场景,我们人为设定当「磁盘IO的使用率」过高并触发告警后,再触发延迟告警。

当告警发生后,我们点击故障分析,进入分析页:

图片

分析页面如上所示,让我们解释一下。

  • 由于alert_service的下游是tool.sandbox,并且这两个服务都在主机:prod-host-10-36-enterprise-7-logic,并且该主机发生磁盘IO操作的CPU使用率过高的告警。因此根因分析就会把这些关系和告警联系起来,并告知给用户。

除了「磁盘IO操作的CPU使用率」,还有「5分钟单核负载」,「网络流量」等指标均可触发高负载场景的分析。

2.4 结论

在微服务架构中,单一服务的性能往往与其所依赖的其他服务和资源紧密相关。我们在这次的模拟场景中成功地展示了如何通过“服务故障根因分析”工具来识别和关联服务延迟增加与其所在主机的资源高负载之间的因果关系。

这种自动化的、综合的分析方法大大简化了故障诊断过程,确保了更快速、更准确的问题定位和解决,进一步提高了服务的稳定性和可用性。

3

支持按拓扑形式分析故障演变情况

故障根因分析的分析视图改版,支持按拓扑形式分析故障演变情况。在旧版本中,尽管可以关联并分析出所有可能导致故障的原因,但是分析视图所携带的信息过于繁琐和冗余,不利于高效分析的目的。在新版故障分析视图中,支持以故障拓扑的形式去智能分析故障演化路径。如下所示:

图片

如上图所示:红色为底色的方框代表服务产生的告警,比如端口拨测失败。

而后展示了和此服务关联的其他服务的变更情况,由图可知,是17*.3*.**.**上的scheduler_service发生了变更导致服务告警。

图片

如此可以帮助用户快速排除服务故障的原因是否由于变更产生。

质量冷知识:TRIZ,一个被人忽略的管理工具 TRIZ是什么? 说到TRIZ就不得不提到一个点背的帅哥。 他叫根里奇·阿奇舒勒(俄语:Ге́нрих Сау́лович Альтшу́ллер,1926年10月15日-1998年9月14日),生于前苏联乌兹别克的首都塔什干,前苏联发明家,提出了发明式的问题解决理论TRIZ,打小的时候就喜欢搞些发明创造。 9年级的时候,就拥有了第一张国家专利证书,接下来就像开了挂似的,陆续发明了密闭式潜水服、带有火箭发动机的潜艇、火焰喷射手枪等霸气十足的武器(装置)。 终于,他28岁时候的一项发明:“在没有潜.. 阅读详情

相关推荐

故障分析系统与数据挖掘技术

这是一篇关于故障分析的文档。详述了使用决策树算法对机械故障系统进行分析。

硬货 | 根本原因分析的7个必备武器

作者|一鸣 Hi 小伙伴们! 前段时间里处理了不少质量问题,无一例外地,所有问题解决的核心部分都是根本原因分析(RCA:Root Cause Analysis)。于是,今天就跟大家整理了根本原因分析中最常用的7个秘密武器。 根本原因分析(RCA)是一项结构化的问题处理法,用以逐步找出问题的根本原因并加以解决, 而不是仅仅关注问题的表征。这要求我们要透过冰山一角,找到隐藏在水下的部分。 当然,任何一个问题,如果我们刨根究底,不加任何限制,我们甚至可以将其原因追溯到史前文明,因此,“适可而止,命中要害” 就显

weixin_48726650的博客 3513

根本原因分析方法、工具、技术对比分析

核电站根本原因分析方法

【华为云技术分享】根因分析

1. 什么是根因分析 在工作中我们经常会遇到根因分析的提法,有时也称作根原因分析或简称RCA(Root Cause Analysis),那什么是根因分析呢?目前还没有一个公认的定义,一般都是从操作层面来解释怎么进行根因分析的,缺少方法论框架性说明。有些书籍将发现问题和寻找解决方案也纳入根因分析的范围,使什么是根因分析变得更模糊。本文通过梳理相关知识,完善概念和模型,希望能在思维方法层面提供一个...

华为云官方博客 1万+

故障分析系统.pdf

故障分析系统.pdf

【Labview与SQL Server互联(labview可以引用数据库)】

Labview与SQL Server互联

Magize的博客 3587

【亲测免费】 探秘DiagnoseSystem:智能故障诊断系统的高效解决方案

探秘DiagnoseSystem:智能故障诊断系统的高效解决方案 是一个开源的、基于深度学习的故障诊断系统,旨在帮助工程师们快速准确地识别设备或系统的故障问题。它利用先进的机器学习算法和大数据处理能力,为实时监测和预测设备状态提供了强大的工具。 技术架构 DiagnoseSystem的核心是其深度学习模型,该模型经过大量的训练数据集进行训练,能够理解并学习不同设备在正常运行和异常情况下的模式。系统...

gitblog_00081的博客 1231

【数字图像处理第四版课后习题答案】第2章 数字图像基础(含英文原版)

如图 P2.3 所示,视网膜图像中与点相对应的直径 x 是由类似的三角形得到的。即得出 x = 0.085d。根据第 2.1 节中的讨论,并结合一些自由解释,我们可以将眼窝视为一个方形传感器阵列,拥有大约 337,000 个元素,这相当于一个大约 580×580 个元素的阵列。假设元素间距相等,则在 1.5 毫米长的直线上有 580 个元素和 579 个空间,共计 1,159 个。换句话说,如果一个点的直径 d<1.3×10-6 m,或者 d<15.3×10 m,眼睛就无法检测到这个点。

weixin_56463218的博客 1万+

【笔记】两个根因分析方法:5WHY&10WHY

什么是问题根因分析 根本原因分析(root cause analysis):通过调查和分析问题哪里出错、为什么出错,寻求防止差错事故再次发生的必要措施,从而提高服务安全和质量。 根因分析目标 问题(发生了什么) 原因(为什么发生) 措施(什么方法能够阻止问题再次发生) WHY-WHY分析法(5WHY,5W) 5W分析:是一个诊断性技术,用于识别和说明因果关系链,它的根源会恰当地定义问题。不断提问为什么前一个事件会发生,直到回答“没有好的理由”或者直到一个新的故障模式被发现才停止提问。解释根本原因以...

5757

YOLO与3D点云融合:从原理到实践的多模态3D目标检测指南

最近在实验室和几个研究生聊天,发现一个挺有意思的现象:大家一提到“YOLO+3D点云”这个组合,第一反应往往是“顶会热门”、“发论文利器”,但真上手去复现或者想基于这个方向做点创新时,又常常卡在第一步——感觉每个部分都懂一点,但就是串不起来,不知道从哪开始,也不知道核心的“价值点”到底在哪。 这让我想起几年前刚开始接触这个领域时的自己,也经历过同样的困惑。当时看了很多论文,感觉“3D目标检测”这个方向既酷又难,YOLO负责2D图像里的快速定位,点云提供精确的三维空间信息,听起来是天作之合。但真正把代码跑起来

weixin_34267123的博客 416

vivado 编译ADI AD9361 TCL脚本生成hdl工程

(4)输入"source ../../scripts/adi_make.tcl"命令(仅双引号内部命令,不包含双引号),个人理解:该命令用来加载当前所需要编译工程所需要各功能模块的信息,因为每个工程需要不同的功能模块,比如有的需要gpio模块,有的不需要gpio模块,这些模块上前面路径的library也同样以TCL脚本形式存在,当有需要时才进行编译,怎么知道当前工程需要什么模块呢就是通过"source ../../scripts/adi_make.tcl"(仅双引号内部命令,不包含双引号)命令实现。

weixin_40586423的博客 809

《根原因分析·简化的工具和技术》读书笔记

第二章 根原因分析 2.1 根原因分析的定义  根原因分析是一种结构化的调查活动,其目的是识别问题的真正原因和消除它所必需的措施。 2.2 不同的根原因分析工具 2.2.1 问题理解 流程图 用于梳理过程,展示问题发生的地方 常用流程图如:常规流程图、跨职能流程图、多层流程图等等 步骤: 收集并记录; 定义角色,如顾客、输出、输入以及输入的供方; 识别主要活动或任务,最好倒推方式进行; 不同颜色代表不同活动,产品,文件和其他元素; 使用可随时调整的方式绘制。 关键事件 避免主观思考,不要按照内心

Keeomg的博客 3880

ENVI SARscape安装全攻略:从下载到汉化一步到位(附最新试用申请链接)

本文提供ENVI SARscape从下载安装到汉化的完整指南,特别针对InSAR(合成孔径雷达干涉测量)分析环境搭建。详细介绍了系统要求、分步安装流程、汉化优化方法及硬件加速配置,并分享数据处理验证和常见问题解决方案,帮助用户高效搭建遥感数据分析平台。

rnn9storyteller的博客 1414

智能运维之根因分析:如何设计根因分析系统

随着时代的发展,现有的企业 IT 设施越来越庞大、越来越复杂。根因分析的定位,变得越来越难。由此引出了一个问题,是否可以借助人工智能技术,实现故障的智能定位? 现在市面上关于根因分析的材料并不多,更多的是以论文的形式出现,都在探索不同的算法在特定场景下的效果。学术研究本来就应该百花齐放,但是工业界除了关心理论本身,更关心的是如何落地以及如何为企业带来效益。

micklongen的专栏 2493

Qt应用软件【协议篇】自定义协议处理串口半包贴包

Qt串口数据,半包,贴包,丢包数据处理

小鱼酱的博客 1213

MIKE21 教程 3.2 随空间变化的网格文件制作(.dfsu文件制作) 曼宁值网格文件制作

上一节讲解了如何制作时间序列文件。本节讲解如何制作仅随空间变化的文件。 目录 1 数据准备 1.1 基于地形设置 1.2 基于地形水深设置: 2 数据导入 3 数据导出

Hello Word 3941

EasyTcp服务器端编程分离客户端连接与消息处理业务

服务器主程序函数,非常清晰 #include "EasyTcpServer.hpp" #include<thread> bool g_bRun = true; void cmdThread() { while (true) { char cmdBuf[256] = {}; scanf("%s", cmdBuf); if (0 == strcmp(cmdBuf, "...

wwxy1995的博客 447

YOLO26改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下: 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检测头对应的经过了更多的下采样操作,相比P3/

Limiiiing的博客 353

一篇易懂的ECU故障诊断指南

AUTOSAR,UDS

weixin_48120109的博客 5391

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机故障综合分析系统,计算机系统故障分析与处理

《计算机系统故障分析与处理》由会员分享,可在线阅读,更多相关《计算机系统故障分析与处理(5页珍藏版)》请在人人文库网上搜索。1、计算机网络故障诊断和排除方法摘要:随着计算机控制系统广泛、深入地渗透到人们的生活中,因其可靠性题 而潜在的巨大危害日益凸显。因此,设计具有高可靠性能的计算机控制系统成为必 然。目前,针对复杂环境中计算机控制系统的可靠性研究设计已经获得了某些研究 成果,且其具有广泛的应用前...

weixin_34707242的博客 622

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

52 | 故障排查与根因分析

今天我们聊的是线上故障的排查与根因分析。从理论上讲,我们将故障排查过程定义为反复采用“假设 - 验证排除”手段的过程:针对某系统的一些观察结果和对该系统运行机制的理论认知,我们不断提出一个造成系统问题的假设,进而针对这些假设进行测试和排除。为了有效排查故障,日志系统在里面起到了关键作用。定位问题本身就是 “假设 - 验证排除 - 再假设 - 再验证排除” 这样的循环,直至最后定位到问题。所以基于时序数据的日志系统,往往查询支持非常多样化的过滤条件,功能非常强大。

qq_37756660的博客 1882

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

TCP Analysis Flags 之 TCP ZeroWindow

TCP Analysis Flags 之 TCP ZeroWindow

7ACE的博客 2084

智能运维 | 故障诊断与根因分析论文一览

近些年来,在需要支持多平台的互联网应用中,微服务架构越来越受欢迎。与此同时,对于互联网公司来说,微服务的性能质量至关重要,因为微服务故障会降低用户体验并带来经济损失。有效的定位故障的根本原因对于快速恢复服务并减轻损失来说至关重要。随着5G与云计算的⼤⼒发展,如何进行更自动化的运维以管理⼤规模的服务设备,是当今云⼚商⾮常关心的问题。针对这⼀问题,全球权威的IT研究与顾问咨询公司 Gartner于2016年提出了AIOps(Artificial Intelligence for IT Operations)

weixin_53741275的博客 7288

EasyTcp:简化TCP通信的利器

EasyTcp:简化TCP通信的利器 在现代软件开发中,TCP通信是构建高效、可靠网络应用的基础。然而,处理TCP通信中的重复任务往往繁琐且容易出错。为了解决这一问题,我们推出了EasyTcp——一个简单、快速且功能强大的TCP库,旨在简化TCP通信的复杂性,同时保持高性能和灵活性。 项目介绍 EasyTcp是一个开源的TCP库,专注于简化TCP通信的开发流程。它封装了TCP通信中的常见任务,如序...

gitblog_01026的博客 1082

【亲测免费】 探索易统计(easystats):让数据分析更简单

是一个开源的数据分析框架,旨在简化统计学和机器学习的过程,尤其适合于科研与教育领域。这个项目提供了一组统一、简洁且高效的工具,帮助用户专注于数据本身,而非编程细节。 ## 技术分析 **1. 基于Python:** 易统计是建立在Python语言上的,这意味着它充分利用了Python的生态系统,如NumPy, Pandas等库,使得数据预处理和模型训练变得简单直观。 **2. 集成Seabo...

gitblog_00088的博客 608

开源网络分析工具TCP Traffic Analyzer

来源于InfoQ: Yahoo最近在其开发者博客上发布了一款开源网络分析工具TCP Traffic Analyzer(yconalyzer),读者可以借此分析网络应用在服务器端与客户端之间的运行状态。 TCP Traffic Analyzer的几个显著分析功能包括: 持续时间超过(或者小于)某阈值的TCP 连接数。 尝试次数超过N次才成功的TCP连接数。 TCP连接持续时间和吞...

weixin_34304013的博客 252
上一篇: 14 个必须了解的微服务设计原则
下一篇: 解锁 DevOps 精通:成功的综合指南
优维科技EasyOps
博客等级 码龄5年 1483粉丝 395原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值