云服务接口现网故障快速发现与告警实践

news/2024/7/4 8:11:14 标签: 运维, python, 云原生, 监控, API, oneapi

一、问题背景

在之前的内容中,笔者对云原生、DevOps等场景下的质量看护与告警平台建设有了一个初步的介绍。在其中众多的现网故障与风险里,最常见、也是最重要的一类风险为现网接口故障

接下来我们对这类故障的类型、表现形式以及快速发现与告警的相关进行简略介绍。

二、接口故障

在当前云原生与微服务的背景下,功能业务与数据交互90%以上的情况都是通过接口来实现的。

对于接口访问状态,只是通过状态码机制来实现的:

  • 2xx类型:成功类型;
  • 3xx类型:使用情况较少,一般不关注;
  • 4xx类型:主要关注429——即接口发生流控;
  • 5xx类型:重点关注,说明服务内部出现严重故障;

在发现与告警中,我们主要通过以下三种手段:

  • 调用链
  • 日志
  • 拨测

三、基于调用链

  • 应用性能管理平台通过Agent获取所有注册在CMDB的服务后端接口调用全链路数据;
  • 收集全量数据并在大数据平台进行汇聚、处理,提供诸如“xx接口状态码分布”等结果;
  • 基于状态码详情信息,发起快速告警。

基于调用链的,除了能够快速发现现网接口故障外,还能够利用全链路信息,挖掘接口调用用户、上下游服务、故障影响面等信息。

四、基于日志

  • 云日志服务结合服务安装的相关request-filter插件,实现服务接口访问日志自动上报;
  • 自动基于日志标签、状态码、故障关键字等信息,实现现网接口故障快速告警。

基于日志的方案没有全链路优势,但可以对访问信息、接口故障日志信息做深度的自定义,方便发现一些其他现网接口问题:例如之前所说的依赖降级等。

五、基于拨测

除了上述基于现网数据,我们还可以使用主动探寻的方法发现服务接口问题——拨测。

这其中还可以根据复杂程度的不同,分成功能拨测与快速拨测两类。

1、功能拨测

  • 云化测试平台对多个接口进行用例编纂,一般一个用例包含多个接口,用已验证某个或多个功能特性;
  • 根据用例设置的CheckPoint来判断用例成功与否、并选择告警。
    • CheckPoint一般取接口状态码,也可以取RequestBody中相关字段值;
    • 只要有一个接口CheckPoint未检查通过,整个用例都会显示失败;

功能拨测由于包含完整的数据初始化、数据销毁等流程, 因此执行速度较慢,一般用于测试重要但频率较低的特性。

2、快速拨测

  • 配置接口地址、认证token等,高频、快速发起对接口的访问,判断接口返回值是否为2xx;

快速拨测没法承担过于复杂的逻辑检测,但对于暴露给用户或高频次使用的核心接口,这种快速测试的方法在发现接口故障上是颇为有效的。


http://www.niftyadmin.cn/n/5408757.html

相关文章

redis02 安装

官网下载 传送门https://redis.io/download/#redis-downloads 安装Redis mac m1安装 下载你需要版本的软件包放到指定的目录下进行解压 cd 到解压好的redis目录 运行下面的命令进行编译测试 sudo make test 中途可能会提示你安装make工具,按提示安装即可&…

leetcode——动态规划——乘积最大子数组

1 乘积最大子数组 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 子数组 是数组的连续子序列。 示例 1: 输…

IPC对象、消息队列 、共享内存

我要成为嵌入式高手之3月4日Linux高编第十四天!! 消息队列、共享内存、信号灯: 一、IPC对象 内存文件,如何查看? 1、ipcs: 查看系统中的IP对象的消息队列、共享内存、信号灯信息 2、ipcrm:…

未来已来:人工智能时代的创新思维与实践

未来已来:人工智能时代的创新思维与实践 在人工智能时代,创新思维和实践变得尤为重要。以下是对这一主题的小点论述: 1. 理解人工智能的基础 人工智能是一种模拟人类智能的技术,通过机器学习、深度学习等方法来实现。了解人工智…

Kubernetes(K8S第三部分之资源控制器)

资源控制器 什么是控制器 Kubernetes中内建了很多controller(控制器),这些相当于一个状态机,用来控制Pod的具体状态和行为。 控制器类型 ReplicationController和ReplicaSet Deployment DaemonSet StateFulSet Job/CronJob…

数据删除

目录 数据删除 删除员工编号为 7369 的员工信息 删除若干个数据 删除公司中工资最高的员工 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 数据删除 删除数据就是指删除不再需要的数据 delete from 表名称 [where 删…

优优嗨聚集团:美团代运营服务,商家增长的新引擎

在当今数字化时代,线上平台已成为商家拓展业务、提升品牌影响力的重要渠道。美团作为国内领先的本地生活服务平台,拥有庞大的用户群体和丰富的商业资源。然而,对于许多商家而言,如何在美团平台上进行有效运营,实现业务…

Javaweb之SpringBootWeb案例之自动配置的两种常见方案的详细解析

3.2.2.2 方案一 ComponentScan组件扫描 SpringBootApplication ComponentScan({"com.itheima","com.example"}) //指定要扫描的包 public class SpringbootWebConfig2Application {public static void main(String[] args) {SpringApplication.run(Sprin…