Repository navigation
test(observability): add reproducible signal captures - #1155
Conversation
provider.log and consumer.log are capture.py output and already match the repository *.log ignore. Offline tests rebuild those lines from traces.jsonl. The license ignore for jsonl files is **/*.jsonl.
Keep the parent READMEs to the capture commands, saved files, and a pointer at the checked-in snapshot. Field checks, the exit-1 mismatch, and the SDK pin stay in capture/README.md.
|
这个ci红跟go升版至1.27有关,protocol/jsonrpc/json.go:218 的 type req *serverRequest会在此版本go下出现问题。go v1.27 把 encoding/json 换成了 v2 实现(https://go.dev/doc/go1.27)。然后用 v1.27 编译时,jsonrpc 服务端收到任何请求都会直接崩,而且 recover 承受不住。triple 和 dubbo 协议不受影响。 这个 主要的问题是 修复:
等 #1156 合入后我会再次 rebase 该pr。 |
|
这里不是我后面的改动烂ci了,是ci用的外部工具在中间换了go版本,排了半天ai速查了下这个神秘问题 10/15 第一次提交时,CI 里 "Check license header" 这一步用的 skywalking-eyes/header@main 装的还是 Go 1.25,所以集成测试也用 1.25 跑,是绿的。10/18 skywalking-eyes 在自己的 main 上把 Go 写死成了 1.27。因为 samples 引用的是 @main、没钉版本,从那以后每次跑 CI 都会装上 1.27,并且留在 PATH 里,后面的集成测试就变成了用 1.27 跑。而 dubbo-go 的 jsonrpc 在 1.27 下会栈溢出,rpc/multi-protocols 就挂了。 |
Summary
Extend the existing observability example with repeatable capture of raw metrics, OTLP spans and context logs. Validate both sides' counts, trace fields and parent IDs, and CtxLogger output with valid, absent and invalid contexts.
Use a non-empty group/version and pin the SDK to merged commit
e4aabaf27773; the previous pin includes the group/version inrpc.service. Other dependency versions stay unchanged.Refs apache/dubbo-go#3767.
Validation
service.nameidentifies the client, but metricapplication_nameidentifies the provider. The strict check exits 1 and reports it. Admin pages were not tested.With a temporary module replacement pointing to runtime commit
b2e79b0f, the same live capture passes every strict check, including consumer application alignment.The runtime fix is apache/dubbo-go#3770. After that fix merges, update the sample SDK pin and regenerate the capture to complete consumer field alignment.