添加自定义业务 Tag

在遇到必须使用手机号或流水号来查询链路信息等个性化场景中,可以将这些信息设置为自定义 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

然后,在目标链路的详情页,鼠标悬浮于 服务信息 列上,会弹出 服务信息详情,其中就包含了自定义 tag 及对应参数值,如下所示:

结果验证