延伸扩展:XX核心业务场景
路由标签打标、传播、检索
链路标签染色与传播
SW: SkyWalking的简写
- 用户请求携带HTTP头信息
X-sw8-correlation
- “X-sw8-correlation: key1=value1,key2=value2,key3=value3”
- 网关侧读取解析HTTP头信息
X-sw8-correlation
,然后通过SW的关联上下文传播- ContextManager.getCorrelationContext().put(key, value)
- SW插件使用
- TraceContext.putCorrelation(key, value)
- 应用使用
- ContextManager.getCorrelationContext().put(key, value)
- 上游业务应用通过SW的关联上下文传播路由标签
CorrelationContext
业务应用通过属性变量设置SW关联上下文的Span跨度标签键的集合,进行自动打标搜索。
- JVM启动参数属性:
java -Dskywalking.correlation.auto_tag_keys=autotag1,autotag2
- 环境变量:
SW_CORRELATION_AUTO_TAG_KEYS=autotag1,autotag2
应用变更
- apm-gateway-trace-plugin,SW插件,
feature/guangyi/20240531_span_tag_sw8_correlation
分支- 网关应用java代理
- 链路标签染色与传播
使用示例
链路标签数据检索
{“query”:“query queryTraces($condition: TraceQueryCondition) {\n data: queryBasicTraces(condition: $condition) {\n traces {\n key: segmentId\n endpointNames\n duration\n start\n isError\n traceIds\n }\n }}”,“variables”:{“condition”:{“queryDuration”:{“start”:“2024-06-03 0624”,“end”:“2024-06-03 0654”,“step”:“MINUTE”},“traceState”:“ALL”,“queryOrder”:“BY_START_TIME”,“paging”:{“pageNum”:1,“pageSize”:20},“tags”:[{“key”:“http.status_code”,“value”:“200”}],“minTraceDuration”:null,“maxTraceDuration”:null,“serviceId”:“bGVmaXQtdXNlcnx8cHJvZA==.1”,“serviceInstanceId”:“bGVmaXQtdXNlcnx8cHJvZA==.1_YmRiZGU2MTMyM2NmNGVmMDhmNDYyNzQxOWY1MDg1ZDNAMTkyLjE2OC4xMDcuMjA4”}}}
参考
- SkyWalking Cross Process Correlation Headers Protocol
- 巧用SkyWalking实现全链路传递userId等自定义数据
- RocketMQ消息灰度方案-消息逻辑隔离