本文以Java应用为例,介绍从开通链路追踪服务及相关依赖服务并授权,到将应用接入链路追踪的流程,帮助您快速上手链路追踪。

前提条件

  • 开通链路追踪
  • 开通日志服务
  • 开通访问控制

授权链路追踪读写您的日志服务数据

  1. 登录链路追踪控制台
  2. 概览页面上,单击授权,授权链路追踪读写您的日志服务。
  3. 云资源访问授权页面上,选择所需的权限,并单击同意授权
    Accessing Log Role

通过Jaeger客户端上报Java应用数据

本文以Jaeger客户端上报Java应用数据为例,介绍如何上报数据。通过其他客户端上报数据和上报其他语言应用数据的方法,请参见文末的相关文档。

  1. 下载Demo工程,进入manualDemo目录,并按照Readme的说明运行程序。
  2. 打开pom.xml,添加对Jaeger客户端的依赖。
    <dependency>
        <groupId>io.jaegertracing</groupId>
        <artifactId>jaeger-client</artifactId>
        <version>0.31.0</version>
    </dependency>
  3. 配置初始化参数并创建Tracer对象。

    Tracer对象可以用来创建Span对象以便记录分布式操作时间、通过Extract或Inject方法跨机器透传数据、或设置当前Span。Tracer对象还配置了上报数据的网关地址、本机IP地址、采样率、服务名等数据。您可以通过调整采样率来减少因上报数据产生的开销。

    说明 请将 <endpoint>替换成链路追踪控制台 集群设置页面里的上相应客户端和地域的接入点。
    // 将manualDemo替换为您的应用名称。
    io.jaegertracing.Configuration config = new io.jaegertracing.Configuration("manualDemo");
    io.jaegertracing.Configuration.SenderConfiguration sender = new io.jaegertracing.Configuration.SenderConfiguration();
    // 将 <endpoint> 替换为控制台概览页面上相应客户端和地域的接入点。
    sender.withEndpoint("<endpoint>");
    config.withSampler(new io.jaegertracing.Configuration.SamplerConfiguration().withType("const").withParam(1));
    config.withReporter(new io.jaegertracing.Configuration.ReporterConfiguration().withSender(sender).withMaxQueueSize(10000));
    GlobalTracer.register(config.getTracer());
  4. 记录请求数据。
    Tracer tracer = GlobalTracer.get();
    // 创建Span。
    Span span = tracer.buildSpan("parentSpan").withTag("myTag", "spanFirst").start();
    tracer.scopeManager().activate(span, false);
    tracer.activeSpan().setTag("methodName", "testTracing");
    // 业务逻辑。
    secondBiz();
    span.finish();
  5. 等待2分钟~3分钟后,登录链路追踪Tracing Analysis控制台,在应用列表页面并查看上报的链路数据。

后续步骤

将应用数据上报至链路追踪控制台后,您可以在链路追踪控制台执行以下操作: