-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrate xgo's mock & tracing abilities into online web services #262
Comments
@anfreshman 可以在这个单独的issue里面进行讨论。 问题1: 是否支持动态的mock支持,目前我们在shopee内部就是这样用的。 我们的服务用xgo编译后部署到Preview环境(同Live环境,但是没有流量),能够支持我们在线上进行debug,以及你提到的mock。 由于你说的这些功能需求都是普遍存在的,我正在打算将这一部分代码也开放出来,但有许多工作要做。 问题2: 是否会影响代码覆盖率?不会。 我们在gitlab workflow中使用xgo进行单测,同时上报覆盖率进行分析。 不过反过来,因为覆盖率工具改变了源代码,所以覆盖率工具生成的代码对xgo有影响。所以实际上xgo针对生成的覆盖率统计代码进行识别,并且跳过. |
@xhd2015 感谢回复,这边正在调研各个开源库,xgo看起来非常值得作为一个golang流量回放 & 变异测试的探索方案,非常期待后续的动态mock方案开源。 |
动态Mock的方案是比较简单的,但由于目前的内部实现与我们所使用的go框架耦合在一起,所以需要一定的时间进行拆分。 除了动态Mock之外,还有Trace也是类似的。 你们的调研时间线是怎样的?以及具体会怎么使用mock(以及可能的trace)? |
我们这边时间暂时比较宽裕,还是预调研阶段,人力不是很充足,可能期望Q4会有一个demo,但按优先级也可能顺延到明年Q1 |
感谢分享,抽空整理下现有的mock逻辑。 |
@anfreshman 这是我们现在线上流量回放的整体架构图 目前开源的主要是xgo这一部分,包含单元测试和trace收集的能力。 你提到的几个关键点:
|
@xhd2015 感谢回复!我会和伙伴优先在本地使用xgo做一些实验 来验证我们的理解一致。 |
可以的,我一直有整理开源的想法。可能在一两周内粗略整理一下。 |
@anfreshman 要点:
|
非常感谢!这对我设计和完善基于xgo的方案帮助很大 |
Yes. 这里可行是因为我们主要是读流量,所以可以复用同一套DB和Redis等中间件。 如果是写流量,则需要通过流量标签来进行不同中间件的路由,比如影子库。
xgo的主要作用是Trace和Mock两个部分。Trace和Mock都是可以去除的,所以xgo不是一个强依赖。但是如果要做流量回放,mock是必不可少的。mock分为两个部分:1.RPC Mock 2.函数Mock。 总的来说,xgo在这里面的作用主要是提高问题排查效率,方便线上Debug。 |
Quote from here: #7 (comment)
Originally posted by @anfreshman
The text was updated successfully, but these errors were encountered: