作者:王宁轩 2022年1月31日

特邀文章,原载于PingCAP博客,作者:王宁轩

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,一个轻量级的微服务框架为例,建立一个简化的演示环境。

  1. 参照此文件,在Spring Boot中创建一个SkyWalking演示。
  2. 执行命令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仓库提交你的拉动请求或问题。

【翻译】混沌网+SkyWalking:为混沌工程提供更好的可观察性相关推荐

  1. 混沌实践访谈:混沌工程和系统可观测性密不可分

    在O'Reilly的一份新报告"Chaos Engineering Observability: Bringing Chaos Experiments into System Observa ...

  2. 走近分形与混沌(part12)--随机过程与混沌

    学习笔记 学习书目:<蝴蝶效应之谜:走近分形与混沌 >-张天蓉: 随机过程与混沌 我们所说的混沌现象的确并不完全等同于随机,但是和随机过程有关系,它是随机过程和决定规律的结合.洛伦茨方程产 ...

  3. 混沌加密算法python_基于混沌Logistic加密算法的图片加密与还原

    摘要 一种基于混沌Logistic加密算法的图片加密与还原的方法,并利用Lena图和Baboon图来验证这种加密算法的加密效果.为了能够体现该算法在图片信息加密的效果,本文还采用了普通行列置乱加密算法 ...

  4. Ardupilot 增加一个mavlink消息(翻译官网)

    目录 目录 摘要 第一: 翻译官网资料 增加一条新的mavlink消息(Adding a new MAVLink Message) 第二: Mavlink代码信息 (1)分析姿态包数据 (2)分析挂载 ...

  5. 计算机专业网名英语翻译,英语网名大全带翻译

    一般来说网名一定要独具特色,同时也给他人的第一印象良好,所以网名也需要让大家所说理解,尤其是网络时代,所以为自己起网名时,不妨运用英文带翻译的网名,从而体现自己的独特. 英语网名大全带翻译 但凡追求潮 ...

  6. Rancher Prime 为平台工程提供面向 K8s 的弹性能力

    作者简介 张应罗,SUSE 资深架构师,拥有 16 年架构咨询工作经验,专注于 SUSE Enterprise Container Management 相关的产品落地方案及咨询方案设计. 平台工程 ...

  7. Netflix如何通过支持TLS 1.3提供更安全高效的播放体验

    翻译:LiveVideoStack 来源:Netflix Tech Blog Technologist Note:这样一个端到端的加密通信系统,对Netflix而言,是为了保护自身网络的数据流,防止截 ...

  8. 物联网卡和流量卡网速对比,看看谁更强?

    物联网卡和流量卡网速对比,看看谁更强? 物联网卡是运营商面向物联网企业提供的一种智能设备数据接入业务,物联网卡作为智能设备信息传递的桥梁,来实现物与物.物与人的交互结合,可以说物联网卡也是一种流量卡, ...

  9. Gowild狗尾草推出HE琥珀,标贝科技为其提供更“温柔”的声音

    ​​8月22日,"2018Gowild狗尾草品牌发布会"在中国电影导演中心举行.会上Gowild狗尾草公布了"AI虚拟生命"大战略,并发布了基于大战略之下的新一 ...

  10. Neutrino追问®AMA第10期|Hydro联合创始人:分叉的目的是给生态提供更好的去中心化交易

    1月10日第10期追问AMA在Neutrino社群举行,本期分享嘉宾为来自 Hydro 和 DDEX 的联合创始人 王博闻.在交流中,他不仅点评Hydro与0x之间的差异,同时也回应了0x分叉事件.他 ...

最新文章

  1. HDU 2079 选课时间
  2. 5.1.4 IO软件层次结构
  3. python字符复制函数是啥_Python最全的字符和字符串函数,直接复制到IDLE或另存为py可以运行...
  4. c#中属性自动完成快捷键
  5. java 程序打包成jar_Java程序打包成jar包
  6. 百度seo排名规则_百度seo排名优化要点讲解(已帮助5184人)
  7. fatal error LNK _X
  8. 宝刀不老: Cookie (转)
  9. 理解JVM(五):Java内存模型与线程
  10. 对口本科计算机专业,对口高考计算机类专业综合试题(卷).doc
  11. java Guide 面试指南
  12. Win11系统怎么获得管理员权限
  13. 求实数的整数部分和小数部分python_python求实数的整数部分
  14. android主题切换框架,Prism(棱镜)——一款优秀的Android 主题动态切换框架
  15. Civil3D 2018-03 曲面创建
  16. 中国队输球是有原因滴
  17. TwinCAT3库文件制作
  18. 使用Excel VBA制作成绩统计图----(嵌入模式)
  19. 入职字节外包一个月,我离职了
  20. Hadoop-wordcount,合并多个part-*文件

热门文章

  1. java的即时通讯代码,即时通讯软件源代码-求用JAVA写的开源即时通讯软件的源代码...
  2. 创业的几条至理名言,每条对创业者都大有帮助,值得收藏!
  3. 31 个惊艳的数据可视化作品,让你感受 数据之美!
  4. 在win10下,xilinx公司FPGA下载器上,指示灯不亮,设备管理器中驱动显示正常,下载器无法识别到期间
  5. IMAX Enhanced:让沉浸式家庭影音娱乐体验不再抽象
  6. mysql执行计划详解
  7. Android svc命令
  8. access 英语什么意思_access是什么意思_access怎么读_access翻译_用法_发音_词组_同反义词_入口_出口-新东方在线英语词典...
  9. fast无线路由器设置服务器,Fast迅捷无线路由器怎么设置 Fast迅捷无线路由器设置方法【详细步骤】...
  10. 【Proteus仿真】DAC0832+51单片机汇编实现三角波输出