当前位置:网站首页>【翻译】混沌网+SkyWalking:为混沌工程提供更好的可观察性
【翻译】混沌网+SkyWalking:为混沌工程提供更好的可观察性
2022-08-05 10:12:00 【programmer_ada】
Chaos Mesh是一个开源的云原生混沌工程平台。你可以使用Chaos Mesh来方便地注入故障,模拟现实中可能发生的异常情况,从而发现系统中的潜在问题。Chaos Mesh还提供了一个混沌仪表板,可以让你监控混沌实验的状态。然而,这个仪表盘不能让你观察到实验中的故障是如何影响应用程序的服务性能的。这阻碍了我们进一步测试系统和发现潜在问题。
Apache SkyWalking是一个开源的应用性能监控器(APM),专门用于监控、跟踪和诊断云原生、基于容器的分布式系统。它收集发生的事件,然后显示在其仪表板上,让你直接观察系统中发生的事件的类型和数量,以及不同的事件如何影响服务性能。
当你在混沌实验中同时使用SkyWalking和Chaos Mesh时,你可以观察到不同的故障如何影响服务性能。
本教程将告诉你如何配置SkyWalking和Chaos Mesh。你还将学习如何利用这两个系统来监控事件,并实时观察混沌实验如何影响应用程序的服务性能。
准备工作
在你开始使用SkyWalking和Chaos Mesh之前,你必须。
- 根据SkyWalking配置指南,建立SkyWalking集群。
- 使用Helm部署Chao Mesh。
- 安装JMeter或其他Java测试工具(以增加服务负载)。
- 如果你只是想运行一个演示,根据本指南配置SkyWalking和Chaos Mesh。
现在,你已经完全准备好了,我们可以切入正题了。
第1步:访问SkyWalking集群
安装SkyWalking集群后,你可以访问其用户界面(UI)。然而,此时没有服务在运行,所以在开始监控之前,你必须添加一个服务并设置代理。
在本教程中,我们以Spring Boot,一个轻量级的微服务框架为例,建立一个简化的演示环境。
- 参照此文件,在Spring Boot中创建一个SkyWalking演示。
- 执行命令
kubectl apply -f demo-deployment.yaml -n skywalking
来部署该演示。
完成部署后,你可以在SkyWalking用户界面观察实时监控结果。
注意:Spring Boot和SkyWalking有相同的默认端口号:8080。在配置端口转发时要小心,否则,你可能会出现端口冲突。例如,你可以通过使用kubectl port-forward svc/spring-boot-skywalking-demo 8079:8080 -n skywalking
这样的命令将Spring Boot的端口设置为8079,以避免冲突。
第2步:部署SkyWalking Kubernetes事件导出器
SkyWalking Kubernetes事件导出器能够观察、过滤和发送Kubernetes事件到SkyWalking后端。然后SkyWalking将事件与系统指标联系起来,并显示关于指标何时以及如何受事件影响的概述。
如果你想用一行命令部署SkyWalking Kubernetes Event Explorer,请参考该文件,以YAML格式创建配置文件,然后自定义过滤器和导出器中的参数。现在,你可以使用命令kubectl apply
来部署SkyWalking Kubernetes Event Explorer。
第3步:使用JMeter来增加服务负载
为了更好地观察服务性能的变化,你需要增加Spring Boot上的服务负载。在本教程中,我们使用JMeter,一个广泛采用的Java测试工具,来增加服务负载。
使用JMeter在localhost:8079
上进行压力测试,并添加五个线程,持续增加服务负载。
Apache JMeter的用户界面
打开SkyWalking仪表板。你可以看到,访问率是100%,服务负载达到每分钟约5300个呼叫(CPM)。
SkyWalking仪表板
第四步:通过混沌网注入故障并观察结果
完成上述三个步骤后,你可以使用混沌仪表盘来模拟压力场景,观察混沌实验中服务性能的变化。
混沌网的用户界面
下文描述了在三种混沌条件的压力下,服务性能的变化情况。
CPU负载。10%;内存负载。128 MB
第一个混沌实验模拟的是低CPU使用率。要显示混沌实验开始和结束的时间,请点击仪表板右侧的切换按钮。要了解实验是应用于系统还是从系统中恢复,将光标移到绿色短线上。
在两条绿色短线之间的时间段内,服务负载下降到4929CPM,但在混乱实验结束后又恢复到正常。
第一个混乱条件下的服务负载变化
CPU负载。50%;内存负载。128 MB
当应用程序的CPU负载增加到50%时,服务负载下降到4,307 CPM。
第二个混乱条件下的服务负载变化
CUP LOAD:100%;内存负载。128 MB
当CPU使用率为100%时,服务负载下降到只有没有混沌实验时的40%。
第三次混沌条件下的服务负载变化
摘要
由于Linux系统下的进程调度不允许一个进程一直占据CPU,所以即使在CPU满负荷的极端情况下,部署的Spring Boot Demo仍然可以处理40%的访问请求。
通过结合SkyWalking和Chaos Mesh,你可以清楚地观察到混沌实验何时以及在何种程度上影响应用服务性能。这种工具的组合让你可以观察到各种极端条件下的服务性能,从而增强你对服务的信心。
在所有PingCAP工程师和社区贡献者的不懈努力下,Chaos Mesh在2021年得到了很大的发展。为了继续升级我们对广大用户的支持,了解更多用户在混沌工程中的体验,我们希望邀请您参加 这次调查,给我们提供宝贵的意见。如果你想了解更多关于Chaos Mesh的信息,欢迎你加入GitHub上的Chaos Mesh社区或我们的Slack讨论(#project-chaos-mesh)。如果你在使用Chaos Mesh时发现任何bug或功能缺失,你可以向我们的GitHub仓库提交你的拉动请求或问题。
边栏推荐
- STM32+ULN2003 drives 28BYJ4 stepper motor (forward and reverse according to the number of turns)
- Meteorological data processing example - matlab string cutting matching and R language date matching (data splicing)
- 首次去中心化抢劫?近2亿美元损失:跨链桥Nomad 被攻击事件分析
- 5. Deploy the web project to the cloud server
- Getting started with Polkadot parachain development, this article is enough
- 2022 Huashu Cup Mathematical Modeling Question A Optimization Design Ideas for Ring Oscillators Code Sharing
- MySQL advanced (twenty-seven) database index principle
- PHP operation mangoDb
- 蚁剑webshell动态加密连接分析与实践
- uniapp 连接ibeacon
猜你喜欢
茄子科技CEO仇俊:以用户为中心,做用户真正需要的产品
【温度预警程序de开发】事件驱动模型实例运用
5.部署web项目到云服务器
项目成本控制如何帮助项目成功?
Still looking for a network backup resources?Hurry up to collect the following network backup resource search artifact it is worth collecting!
MySQL transactions
Open Source Summer | How OpenHarmony Query Device Type (eTS)
JS introduction to reverse the recycling business network of learning, simple encryption mobile phone number
电竞、便捷、高效、安全,盘点OriginOS功能的关键词
The founder of the DFINITY Foundation talks about the ups and downs of the bear market, and where should DeFi projects go?
随机推荐
MySQL之数据视图
STM32+ULN2003 drives 28BYJ4 stepper motor (forward and reverse according to the number of turns)
Advanced usage of C language
[Unity] [UGUI] [Display text on the screen]
After Keil upgrades to AC6, what changes?
Oracle temporary table space role
2022 Huashu Cup Mathematical Modeling Ideas Analysis and Exchange
uniapp connect ibeacon
一文道清什么是SPL
教你本地编译运行一个IDEA插件,在IDEA里聊天、下棋、斗地主!
Four years of weight loss record
Jenkins使用手册(2) —— 软件配置
【综合类型第 35 篇】程序员的七夕浪漫时刻
SD NAND Flash简介!
How does the official account operate and maintain?Public account operation and maintenance professional team
First Decentralized Heist?Loss of nearly 200 million US dollars: analysis of the attack on the cross-chain bridge Nomad
Oracle 19.3 restart 环境
Confessing in the era of digital transformation: Mai Cong Software allows enterprises to use data in the easiest way
leetcode: 529. 扫雷游戏
项目成本控制如何帮助项目成功?