前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >国产开源一款流量回放平台产品,无侵入线上流量录制和流量回放平台

国产开源一款流量回放平台产品,无侵入线上流量录制和流量回放平台

作者头像
开源日记
发布于 2023-04-11 10:54:31
发布于 2023-04-11 10:54:31
2.2K0
举报
文章被收录于专栏:JVMGCJVMGC

Moonbox:月光宝盒

Moonbox(月光宝盒)是[JVM-Sandbox]生态下的,基于[jvm-sandbox-repeater]重新开发的一款流量回放平台产品。在jvm-sandbox-repeater基础上提供了更加丰富功能,同时便于线上部署和使用

使用场景

你是否遇到过以下的问题?

  • 线上有个用户请求一直不成功,我想在测试环境Debug一下,能帮我复现一下吗?
  • 压测流量不知道怎么构造,数据结构太复杂,压测模型也难以评估,有什么好的办法吗?
  • 不想写接口测试脚本了,我想做一个流量录制系统,把线上用户场景做业务回归,可能会接入很多服务系统,不想让每个系统都进行改造,有好的框架选择吗?
  • 我想做一个业务监控系统,对线上核心接口采样之后做一些业务校验,实时监控业务正确性

Moonbox(月光宝盒)是一个无侵入的线上流量录制流量回放平台,沿用了jvm-sandbox-repeater的SPI设计,并提供了大量的常用插件,同时也提供数据统计和存储能力。通过Moonbox可以实现自动化测试、线上问题追踪、和业务监控等能力

名词解释

  • 录制:把一次请求的入参、出参、下游RPC、DB、缓存等序列化并存储的过程
  • 回放:把录制数据还原,重新发起一次或N次请求,对特定的下游节点进行MOCK的过程
  • 入口调用:入口调用一般是应用的流量来源,比如http/dubbo,在调用过程中录制调用入参,返回值。回放时作为流量发起和执行结果对比依据
  • 子调用:区别于入口调用,子调用是调用执行过程中某次方法调用。子调用在录制时会记录该方法的入参、返回值;回放时用该返回值进行MOCK
  • MOCK:在回放时,被拦截的子调用不会发生真实调用,利用字节码动态干预能力,将录制时的返回值直接返回
  • 降噪:在回放时,部分回放子调用入参或者回放流量响应结果和原始流量对比不一致字段,对这些非必要字段进行排除对比过程

功能介绍

  • 流量录制:流量录制模板管理,录制任务下发和录制流量查看
  • 流量回放:流量回放任务管理,回放数据查看成功率统计
  • 回放mock:流量录制和回放特殊mock(作为子调用mock)
  • 对比配置:流量回放字段忽略配置

未来计划

月光宝盒项目已经在vivo运行2年,接入了上百个项目。内部有较多新特性正在开发和使用中,预计会陆续会对外开源,包括

  • 丰富更多的插件
  • mysql的数据存储
  • 基于c++的流量录制回放
  • docker化平台部署
  • 用例、场景管理能力
  • 定时录制、回放能力

地址:https://gitee.com/vivo/MoonBox/

更多功能广大网友可以继续挖掘。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用场景
  • 名词解释
  • 功能介绍
  • 未来计划
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档