月光宝盒(vivo流量录制回放平台)正式对外开源

一 、月光月光宝盒 是宝盒什么?
Moonbox(月光宝盒)是 JVM-Sandbox 生态下的一款流量录制回放产品。所谓流量录制回放是流量录制服务端通过挂载agent探针自动注册到服务端,拦截服务端调用,回放将所有外部调用依赖的平台内容(如数据库 、分布式缓存、正式外部服务响应等)进行完整记录形成录制流量。对外其核心价值是开源通过录制流量数据 ,将流量数据转化成可复用、月光可执行的宝盒自动化用例,建站模板快速在测试环境中进行回放比对接口返回值和外部调用依参数(见下图)。流量录制Moonbox(月光宝盒)提供了大量的回放常用插件,能够对常见的平台中间调用进行录制回放 ,同时也提供了非常可靠、正式高性能的对外数据存储 、计算能力。

二 、月光宝盒 有哪些优势?
正如开头所说月光宝盒是一款面向测试、研发工程师使用的低门槛、高性能、更易于使用的模板下载自动化测试工具 。这款产品已经在vivo运行了2年多了,经过我们持续优化、打磨拥有很多实用、易用功能 。它的优点主要体现在下面几方面:
2.1 全面可视化视操作(部分功能)(1)基于任务、接口维度的流量管理能力

(2)详细的流量展示细节(请求、响应、子调用)

(3)基于任务 、接口维度的回放数据管理,叠加各种维度统计 、查询能力

(4)易于人工分析的源码下载回放比对结果和差异展示

月光宝盒支持非常多组件录制和回放能力,基本上能满足绝大多数人诉求 。

此外月光宝盒是前后端分离项目,高防服务器当您使用该项目需要分别部署前端、后端,非常有助于您后续将项目部署到生产环境。
2.4 性能安全可靠平台对性能进行了长期优化,在vivo内部历经多个高并发系统验证。我们对agent端录制流量进行了一系列安全防护,例如对相同接口同时只能有一个进入采样中,限制并行录制接口数量。服务端使用了ES储存流量,有效提升了数据储存规模。
三 、月光宝盒 实现原理
3.1 整体架构月光宝盒平台分为2个部分,分别为moonbox-agent 和 moonbox-server(整体架构如下图所示)
moonbox-agent
使用Java-attach技术(实际的动态字节码增强由JVM-Sandbox实现)动态代理到目标进程上 ,提供流量录制和回放的增强 。香港云服务器
moonbox-server
Agent端使用接口,提供配置查询、录制流量保存 、流量查询、回放结果保存等服务录制任务/回放任务的配置 ,agent任务远程管理能力和管理后台操作界面(前后端分离部署)
流量录制
核心逻辑是将agent分发到用户填写的机器上(本地、远程机器) ,然后将agent attach到用户填写应用所对应的正确进程上去。然后通过JVM-Sandbox的BEFORE、RETRUN、THROW事件机制拦截关键调用位置获取流量入参 、云计算出参 。整体流程见下图整体流程见下图:

流量回放
核心逻辑是将agent分发到用户填写的机器上(本地、远程机器) ,然后将agent attach到用户填写应用所对应的正确进程上去 ,agent启动后从服务端不断拉取流量去分发到对应接口做回放,整体流程见下图 :

心跳管理
Agent启动后会单独开启线程固定间隔时间通过http请求给服务端上报心跳

执行脚本将sandbox agent attach到目标java进程上,sandbox 启动jetty服务,加载moonbox module,然后从服务端拉取moonbox配置,加载流量录制和回放插件。

四、 和 jvm-sandbox-repeater 关系?
Moonbox是基于jvm-sandbox-repeater重新开发的一款流量回放平台产品 。在jvm-sandbox-repeater基础上重写了很多模块 ,并提供了更加丰富功能 ,同时便于线上部署和使用 ,和jvm-sandbox-repeater差异如下:

五、为什么要开源 ?
流量录制回放技术复杂 ,挑战较高 ,开源社区虽然有很多类似产品但是在易用性方面都有一些欠缺,我们希望通过开源月光宝盒帮助对该方向有兴趣的开发者快速构建自己的自动化工具,同时可以基于我们这款产品制定个性化诉求 。此外 ,月光宝盒本身也借鉴了jvm-sandbox-repeater设计和方案,是开源的受益方,现在我们将自己思考和探索回馈给开源社区 ,丰富流量回放开源技术生态。除此之外通过社区中开发者的使用 ,也可以帮助我们更好的改进我们的工具 ,获得更多的需求场景输入 ,也能让该工具获得更加长远的发展 。
六、Roadmap
月光宝盒已经完成V1.0.0版本开源,初步完成了各项重要功能开源 ,后续我们会持续性的完成平台性能 、体验优化工作,同时积极收集社区使用反馈的功能需求 ,将一些好的需求纳入我们版本计划里面。2023年我们规划了一些迭代版本,如下图所示:

七 、写在最后
今天月光宝盒的开源只是我们迈出的一小步,后续我们会持续按照计划向社区贡献版本和特性 。如果您对月光宝盒有兴趣 ,欢迎体验我们开源产品 。如果您有问题或者更好的方案,欢迎向我们开源项目贡献反馈ISSUE和贡献PR,这将是我们莫大的荣幸 。
GItHub项目地址:https://github.com/vivo/MoonBox
相关文章
距离CrowdStrike错误更新导致全球IT系统大规模崩溃的“蓝屏事件”已经数周,但是CrowdStrike的麻烦似乎才刚刚开始,一众端点安全厂商一边对CrowdStrike冷嘲热讽,一边“趁你病要2025-12-07
如何解决电脑显示错误恢复的问题(有效方法帮助您恢复电脑显示错误)
在使用电脑的过程中,我们经常会遇到各种问题,其中之一就是电脑显示错误。当电脑出现显示错误时,我们常常会感到困惑和无助。本文将为您介绍一些解决电脑显示错误恢复的有效方法,帮助您轻松解决这一问题。一、检查2025-12-07
随着抖音的迅速发展,越来越多的人开始使用电脑版抖音。然而,很多人在电脑版抖音上设置封面时遇到了问题。本文将详细介绍如何在电脑版抖音上设置封面,帮助读者快速上手。一、登陆电脑版抖音为了进行封面设置,首先2025-12-07
outlook邮箱是用户在日常工作中都会接触到的一款电子邮件收发软件,帮助用户及时的处理了重要的办公邮件,因此outlook软件深受用户的喜爱,当用户在使用outlook软件时,会发现里面的邮箱容量是2025-12-07
当今网络不同以往,但永不消逝随着网络中的一切都在向云上迁移,很多企业组织贸然断定传统网络必将因此消逝。然而,事实并非如此。更糟糕的是,对此深信不疑的企业组织正将自身置于危险之中。毋庸置疑,与以往相比,2025-12-07
win10系统是一款非常高性能的优秀系统!强大的工作性能是win10系统最为出色的地方!超高的智能不仅为用户们带来了优秀的使用体验也保证了一般情况下系统不会出现问题,但是最近仍旧有很多的小伙伴们反应自2025-12-07

最新评论