Chaos Mesh + SkyWalking:混沌工程更好的可观测性

2024-02-21 23:59

本文主要是介绍Chaos Mesh + SkyWalking:混沌工程更好的可观测性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Chaos Mesh是一个开源的云原生混沌工程平台。您可以使用 Chaos Mesh 方便地注入故障并模拟现实中可能发生的异常,从而识别系统中的潜在问题。Chaos Mesh 还提供了一个 Chaos Dashboard,允许您监控混沌实验的状态。但是,此仪表板无法让您观察实验中的故障如何影响应用程序的服务性能。这阻碍了我们进一步测试我们的系统和发现潜在问题。 

Apache SkyWalking是一款开源应用程序性能监控器 (APM),专门设计用于监控、跟踪和诊断云原生、基于容器的分布式系统。它收集发生的事件,然后将它们显示在其仪表板上,使您可以直接观察系统中发生的事件的类型和数量以及不同的事件如何影响服务性能。 

在混沌实验中同时使用 SkyWalking 和 Chaos Mesh,可以观察到不同的故障对服务性能的影响。 

本教程将向您展示如何配置 SkyWalking 和 Chaos Mesh。您还将学习如何利用这两个系统来监控事件并实时观察混沌实验如何影响应用程序的服务性能。 

先决条件

在开始使用 SkyWalking 和 Chaos Mesh 之前,您必须:

  • 设置 SkyWalking 集群。
  • 使用Helm部署 Chao Mesh 。
  • 安装JMeter或其他 Java 测试工具(以增加服务负载)。

第 1 步:访问 SkyWalking 集群

安装 SkyWalking 集群后,您可以访问其用户界面。但是,此时没有服务正在运行,因此在开始监控之前,您必须添加一个并设置代理。

在本教程中,我们以轻量级微服务框架 Spring Boot 为例,构建一个简化的演示环境。

  1. 在 Spring Boot 中创建 SkyWalking 演示。
  2. 执行命令kubectl apply -f demo-deployment.yaml -n skywalking部署演示。 

完成部署后,您可以在 SkyWalking UI 中观察实时监控结果。 

注意: Spring Boot 和 SkyWalking 的默认端口号相同:8080。配置端口转发时要小心;否则,您可能会遇到端口冲突。例如,您可以使用类似的命令将 Spring Boot 的端口设置为 8079,kubectl port-forward svc/spring-boot-skywalking-demo 8079:8080 -n skywalking以避免冲突。 

第 2 步:部署 SkyWalking Kubernetes 事件导出器

SkyWalking Kubernetes Event Exports能够观察、过滤和发送 Kubernetes 事件到 SkyWalking 后端。SkyWalking 然后将事件与系统指标相关联,并显示指标何时以及如何受事件影响的概览。

如果您想通过一行命令部署 SkyWalking Kubernetes Event Explorer,请参考此文档创建 YAML 格式的配置文件,然后自定义过滤器和导出器中的参数。现在,您可以使用该命令kubectl apply部署 SkyWalking Kubernetes Event Explorer。 

第 3 步:使用 JMeter 增加服务负载

为了更好地观察服务性能的变化,需要增加 Spring Boot 上的服务负载。在本教程中,我们使用广泛采用的 Java 测试工具 JMeter 来增加服务负载。 

使用JMeter进行压力测试localhost:8079,增加5个线程不断增加服务负载。 

Apache JMeter 的用户界面

打开 SkyWalking 仪表板。可以看到访问率为100%,服务负载达到每分钟5300次左右(CPM)。 

SkyWalking 仪表板

第 4 步:通过混沌网格注入故障并观察结果 

完成以上三个步骤后,您可以使用 Chaos Dashboard 模拟压力场景,观察混沌实验期间服务性能的变化。 

混沌网格用户界面

CPU负载:10%;内存负载:128 MB

第一个混沌实验模拟了低 CPU 使用率。要显示混沌实验的开始和结束时间,请单击仪表板右侧的切换按钮。要确定实验是Applied针对系统还是Recovered来自系统,请将光标移动到短的绿线上。 

在两条短绿线之间的时间段内,服务负载下降到 4,929 CPM,但在混沌实验结束后恢复正常。 

第一混沌条件下的服务负载变化

CPU负载:50%;内存负载:128 MB

当应用程序的 CPU 负载增加到 50% 时,服务负载降低到 4,307 CPM。

第二混沌条件下的服务负载变化

这篇关于Chaos Mesh + SkyWalking:混沌工程更好的可观测性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733506

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

图解可观测Metrics, tracing, and logging

最近在看Gophercon大会PPT的时候无意中看到了关于Metrics,Tracing和Logging相关的一篇文章,凑巧这些我基本都接触过,也是去年后半年到现在一直在做和研究的东西。从去年的关于Metrics的goappmonitor,到今年在排查问题时脑洞的基于log全链路(Tracing)追踪系统的设计,正好是对这三个话题的实践。这不禁让我对它们的关系进行思考:Metrics和Loggi

数据集 3DPW-开源户外三维人体建模-姿态估计-人体关键点-人体mesh建模 >> DataBall

3DPW 3DPW-开源户外三维人体建模数据集-姿态估计-人体关键点-人体mesh建模 开源户外三维人体数据集 @inproceedings{vonMarcard2018, title = {Recovering Accurate 3D Human Pose in The Wild Using IMUs and a Moving Camera}, author = {von Marc

二、Maven工程的创建--JavaSEJavaEE

1、idea创建Maven JavaSE工程:  2、idea创建Maven JavaEE工程:   (1)手动创建 (2)插件方式创建 在idea里安装插件JBLJavaToWeb; 选择需要生成的项目文件后,右击: 项目的webapp文件夹出现小蓝点,代表成功。

三、Maven工程的构建

首先,创建和构建是两个概念。 构建是指将源代码、依赖库和资源文件等转换为可执行或可部署的应用程序的过程。 在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。 项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员更加专注于应用程序的开发和维护,而不必关心应用程序的构建细节。 同时,项目构建还能将多人写的代码聚合,并能够自动化项目的构建和部署,

html记账本改写:数据重新布局,更好用了,没有localStorage保存版本

<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><title>htm记账本</title><style>table {user-select: none;/* width: 100%; */border-collapse: collapse;}table,th,td {border: 1px solid bla

我在高职教STM32——准备HAL库工程模板(1)

新学期开学在即,又要给学生上 STM32 嵌入式课程了。这课上了多年了,一直用的都是标准库来开发,已经驾轻就熟了。人就是这样,有了自己熟悉的舒适圈,就很难做出改变,老师上课也是如此,排斥新课和不熟悉的内容。显然,STM32 的开发,HAL 库已是主流,自己其实也在使用,只不过更换库就意味着教学内容有很大变化,自己也就迟迟没有迈出调整这一步。现在,是时候做出变化了,笔者计划保持教学项

java工程的导入jar包

由于现在学习java web,java工程导入jar包都忘记了。 在此想记录一下:工程项目名:右击 -- Build Path --add External Archives 点击会弹出一个框 ,选择你要导入的jar路径就可以了。

数据集 Ubody人体smplx三维建模mesh-姿态估计 >> DataBall

Ubody开源人体三维源数据集-smplx-三维建模-姿态估计 UBody:一个连接全身网格恢复和真实生活场景的上半身数据集,旨在拟合全身网格恢复任务与现实场景之间的差距。 UBody包含来自多人的现实场景的1051k张高质量图像,这些图像拥有2D全身关键点、3D SMPLX模型。 UBody由国际数字经济学院(IDEA)提供。 (UBody was used for mesh r