如何利用故障根因分析快速定位故障原因?

news2024/11/16 6:59:20

「 背 景 」

众所周知,变更是线上环境不稳定的⾸要因素,有研究表明,线上70%的故障都是由某种变更⽽触发的。因此,当⽣产环境发⽣故障产⽣告警时,管理员第⼀直觉是怀疑近期是否发⽣过变更。此时,我们往往需要⼿动查找变更⽇ 志,确认近期的变更计划,这个过程既繁琐⼜低效。

另外⼀种导致⽣产环境故障的原因,则是服务所在基础设施的⾼负载,⾼饱和度影响了服务的容量和性能。

我们希望具备这么⼀种⾃动分析的能⼒,它能够联动⽣产环境的告警,并⾃动分析产⽣告警的原因是由于变更,还 是由于系统的⾼负载。并且分析结果能以直观的拓扑结构展示出来,我们希望能看到服务间的调⽤关系,所依赖的 中间环节和基础设施以及哪个环节出现变更或者异常。如下图所示:

并且,它可以智能将告警服务周边所有的服务调⽤链路环节贯通并分析出导致异常的可能原因:

这种能⼒就是EasyOps平台的故障根因分析的能⼒。我们看看如何配置和使⽤它们,以及图表达的含义。

「 实 践 」

⾸先,先定义出服务的SLI。我们选择 detect_code 作为服务能⼒的SLI,我们认为⼀旦 detect_code 不为0,表示服务不可⽤。此时告警系统会触发⼀个严重级别的故障,这个故障将被管理员接收。

这个SLI已经内置到平台当中,⽆需额外配置。我们需要做的仅仅是定义出拨测采集策略和告警规则即可。⽐如:

注意:选择的告警资源类型是【服务】模型下的⼦模型,此处为HTTP服务。平台定义只针对服务类的资源做根因 分析。

仅需简单的两步配置,即可使⽤故障根因分析的能⼒!

「 效 果 解 释 」

⼀旦某个HTTP服务发⽣告警,我们通过点击【故障分析】,即可跳转到根因分析⻚:

以开头的图为例说明:

通过上图可知,标红的服务为告警服务,其下是⼀系列围绕此服务的调⽤与被调⽤服务,并且⽗服务和⼦服务的关 系也呈现出来。⽽拓扑最下层是基础设施,也就是主机。

通过这个拓扑结构我们可知,告知故障的原因⼤概率是两台操作系统主机发⽣过变更动作。 结合右侧的传播图我们进⼀步明确变更时间点和故障时间点:

通过上图可知,变更是发⽣在1⽉18⽇,22:03:30,⽽故障是发⽣在1⽉18⽇,22:04:09,很明显此次故障是由于变更导致。在上述案例中,确实也是由于变更时将有缺陷的代码包发布到⽣产环境上,进⽽导致服务不可⽤。

在明确了故障原因后,管理员可以快速决定下⼀步操作,⽐如及时回滚,以减少故障修复时间,提⾼MTTR。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1421376.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux ---- Shell编程之正则表达式

一、正则表达式 ​ 由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用…

C++ 数论相关题目 博弈论:拆分-Nim游戏

给定 n 堆石子,两位玩家轮流操作,每次操作可以取走其中的一堆石子,然后放入两堆规模更小的石子(新堆规模可以为 0 ,且两个新堆的石子总数可以大于取走的那堆石子数),最后无法进行操作的人视为失…

如何在win系统部署Apache服务并实现无公网ip远程访问

文章目录 前言1.Apache服务安装配置1.1 进入官网下载安装包1.2 Apache服务配置 2.安装cpolar内网穿透2.1 注册cpolar账号2.2 下载cpolar客户端 3. 获取远程桌面公网地址3.1 登录cpolar web ui管理界面3.2 创建公网地址 4. 固定公网地址 前言 Apache作为全球使用较高的Web服务器…

MySQL解决 恢复从备份点到灾难点之间数据(不收藏找不到了)

CSDN 成就一亿技术人! 今天分享一期 mysql中 备份之后发生灾难造成数据丢失 那么如何恢复中间的数据呢? 数据库数据高于一切(任何数据是不能丢失的) CSDN 成就一亿技术人! 目录 1.准备测试数据库 2.备份数据库 观…

CCF-CSP 202312-1 仓库规划(Java、C++、Python)

文章目录 仓库规划问题描述输入格式输出格式样例输入样例输出子任务 满分代码JavaCPython 仓库规划 问题描述 西西艾弗岛上共有 n n n 个仓库, 依次编号为 1 ⋯ n 1 \cdots n 1⋯n 。每个仓库均有一个 m m m 维向量的位置编码, 用来表示仓库间的物流运转关系。 具体来说,…

机器学习 | 掌握 K-近邻算法 的理论实现和调优技巧

目录 初识K-近邻算法 距离度量 K值选择 kd树 数据集划分 特征预处理 莺尾花种类预测(实操) 交叉验证与网格搜索 初识K-近邻算法 K-近邻算法(K-Nearest Neighbor,KNN)是一种基本的分类和回归算法。它的基本思想是通过找出与新对象最近…

git远程仓库基本操作

目录 gitremote (查看远程仓库) git remote add [仓库名] [url] git clone [url](克隆远程仓库到本地) git push [名][分支名](提交到远程仓库)​编辑 git pull [名][分支名]从远程仓库拉取​编辑 注意操作…

SpringBoot拉取高德行政区域数据

SpringBoot拉取高德行政区域数据 一、账号申请 1.整体流程 行政区域文档:https://lbs.amap.com/api/webservice/guide/api/district 整体流程可参考:https://lbs.amap.com/api/webservice/guide/create-project/get-key 2.注册账号 注册地址&#…

js padEnd方法介绍笔记

padEnd() 是 JavaScript 字符串的方法之一,它用于在当前字符串的末尾添加指定数量的字符,直到字符串达到指定的长度。 padEnd() 方法接受两个参数: 目标长度和要添加的填充字符。 如果当前字符串的长度已经等于或超过目标长度,则不…

你应该仅仅把useMemo作为性能优化的手段

文章概叙 本文主要通过几个简单的例子,讲解下useMemo这个hook,给诸君参考,也是给我自己做一个记录 关于useMemo useMemo是一个React Hook,它在每次重新渲染的时候能够缓存计算的结果。 相比于其他很常用的hook,如u…

LPC804开发(7.SPI使用)

1.前言 原本说写ADC,但是考虑到6已经给了串口,算了算了,还是把SPI和IIC放到7和8吧。整体用下来感觉NXP的协议比ST和TI开发的完善的,都可以走硬件,比较完善的底层开发,没有硬伤,那么接下来我们来…

教你一招轻松把模糊的照片变高清

亲爱的朋友们,你们是否也曾经遇到过这样的问题——精心拍摄的照片或珍藏已久的图片突然变得模糊不清,让人心情郁闷?别担心,我发现了解决这个问题的秘诀!借助一些专业的图片修复工具,那些模糊的瞬间可以重新…

react实现滚动到顶部组件

新建ScrollToTop.js import React, { useState, useEffect } from react; import ./ScrollToTop.css;function ScrollToTop() {const [isVisible, setIsVisible] useState(true);// Show button when page is scorlled upto given distanceconst toggleVisibility () > {…

一分钟在SpringBoot项目中使用EMQ

先展示最终的结果: 生产者端: RestController RequiredArgsConstructor public class TestController {private final MqttProducer mqttProducer;GetMapping("/test")public String test() {User build User.builder().age(100).sex(1).address("世界潍坊渤…

Wireshark网络协议分析 - UDP协议

在我的博客阅读本文 文章目录 1. 基础2. 实战2.1. 用Go写一个简单的UDP服务器与客户端2.2. Wireshark抓包分析 3. UDP与TCP的区别4. 参考资料 1. 基础 UDP包的数据结构: 2. 实战 2.1. 用Go写一个简单的UDP服务器与客户端 我们这里使用Golang写了一个简单的9830端…

docker由浅入深

一、什么是docker docker 顾名思义就是轮船的意思,轮船我们知道是通过集装箱运载货物的东西,那么docker其实也是类似的东西,只是装载的是虚拟的运行程序罢了。其中集装箱在docker里面被称为container(后面以容器称之)…

林浩然的Python奇遇记:从小白到科学界的编程魔法师

林浩然的Python奇遇记:从小白到科学界的编程魔法师 Lin Haoran’s Python Adventure: From Novice to Programming Sorcerer in the Scientific Realm 在那个平凡的午后,我们的主角林浩然——一个对编程一窍不通但对世界充满好奇的物理学大二学生&#x…

qiankun子应用静态资源404问题有效解决(遇到了http请求静态文件404、css文件引用图片无法显示、svg图片转换成 base64无法显示等问题)

在👉🏻 qiankun微前端部署👈🏻这个部署方式的前提下,遇到的问题并解决问题的过程 >> 问题现象 通过http请求本地的静态json文件404 css中部分引入的图片无法显示 >> 最开始的解决方式 在👉…

Linux第36步_创建正点原子的TF-A工作区

创建正点原子的TF-A工作区,目的是想查看正点原子的设备树文件“stm32mp157d-atk.dts”和设备树头文件“stm32mp157d-atk.dtsi”,了解设备树是什么样子,为后期基于“ST公司的源码”创建自己的设备树提供参考,同时也是为了学习移植u…

飞桨大模型分布式训练技术

今天我为大家介绍飞桨大模型分布式训练技术,内容分为以下几个部分: 首先,我会介绍大模型训练面临的重点难题;然后,为大家介绍飞桨在大模型训练领域的特色分布式训练技术和优化方案;最后,伴随着…