在遇到必须使用手机号或流水号来查询链路信息等个性化场景中,可以将这些信息设置为自定义 tag,添加到 span 中。
前置条件
应用必须基于 SOFABoot 技术栈
Tracer 必须满足如下条件:
版本>=3.0.5
必须使用主动上报模式
业务代码必须显式依赖 Tracer
说明主动上报模式:当 Tracer 版本>=3.0.5时,会默认使用该模式,低于该版本时,请先升级版本。
显式依赖 Tracer 指业务类代码中要调用 Tracer 类,如 SofaTraceContext 等。该操作会带来一定侵入性,请做好封装。
添加方法
您可以通过在业务类中调用 Tracer 类的方式,来设置自定义 tag 及对应的值,示例代码如下:
public void handlerXxx(Map<String, String> request) {
SofaTraceContext ctx = SofaTraceContextHolder.getSofaTraceContext();
SofaTracerSpan span = ctx.getCurrentSpan();
//显式依赖 Tracer,会带来一定侵入性,请做好封装。
if (span != null) {
//将参数添加到自定义tag:xxx_phone 中
span.setTag("xxx_phone", request.get("phone"));
}
// 处理业务逻辑
// ...
}
结果验证
您可通过 链路搜索 功能中的 业务自定义搜索项,输入自定义 tag 及对应的参数,来验证自定义 tag 的添加结果。
假设自定义 tag 为 xxx_phone,对应值为 123,如下所示:
然后,在目标链路的详情页,鼠标悬浮于 服务信息 列上,会弹出 服务信息详情,其中就包含了自定义 tag 及对应参数值,如下所示:
文档内容是否对您有帮助?