kamon文档翻译(四)--trace订阅协议

trace订阅协议

当你给你的应用程序配置使用“Simple Tracing”级别时,每当一个trace被选择和报告时,你能够订阅tracing模块,并接收TraceInfo 信息。订阅使用Kamon.tracer.subscribe(...) 方法,如下所示:

Scala:
Kamon.tracer.subscribe(subscriber)
Java:
Kamon.tracer().subscribe(subscriber);

简单如上所示。一旦你这么做,每次一个trace被采样,你的订阅器就会收到TraceInfo 的信息。
注意:simple trace 订阅很可能会在将来的kamon版本中改变。因为我们计划增强他的性能,并允许跟踪更多信息。

创建一个简单的订阅器

TraceInfo 的信息都有一个简单的数据结构,它有你所期待的TraceContext 包含的基本属性:name,token,timestamp, elapsed time 和一个SegmentInfo 对象集合,SegmentInfo对象集合有他自己的属性:name, category, timestamp 和elapsed time。下面创建一个带有多个segment的trace,并通过一个简单的报告器在控制台上输出这些信息。

Scala:
Tracer.withNewContext("example-trace", autoFinish = true) {
  Tracer.currentContext.withNewSegment("quick-segment", "code", "kamon") {
    Thread.sleep(100)
  }

  Tracer.currentContext.withNewSegment("slow-segment", "code", "kamon") {
    Thread.sleep(3000)
  }
}
Java:
Tracer.withNewContext("trace-with-segments", true, () -> {
  Tracer.currentContext().withNewSegment("quick-segment", "code", "kamon", () -> {
    try{ Thread.sleep(100); } catch (Exception e) { e.printStackTrace(); }
    return 0;
  });

  Tracer.currentContext().withNewSegment("slow-segment", "code", "kamon", () -> {
    try{ Thread.sleep(3000); } catch (Exception e) { e.printStackTrace(); }
    return 0;
  });

  return "done";
});

上面的代码用于创建一个trace和两个有不同生存时间的segment。第一个segment叫“quick-segment”,有大约100毫秒的生存时间。第二个叫“slow-segment”,生存时间大约3秒。
下面的代码是订阅者,他会等待TraceInfo 信息,然后在控制台上打印出来。

Scala:
class TracePrinter extends Actor {
  def receive = {
    case traceInfo: TraceInfo =>

    println("#################################################");
    println("Trace Name: " + traceInfo.name)
    println("Timestamp: " + traceInfo.timestamp)
    println("Elapsed Time: " + traceInfo.elapsedTime)
    println("Segments: ");

    traceInfo.segments.foreach { segmentInfo =>
      println("    ------------------------------------------");
      println("    Name: " + segmentInfo.name)
      println("    Category: " + segmentInfo.category)
      println("    Library: " + segmentInfo.library)
      println("    Timestamp: " + segmentInfo.timestamp)
      println("    Elapsed Time: " + segmentInfo.elapsedTime)
    }
  }
}
Java:
public static class TracePrinter extends UntypedActor {

  @Override
  public void onReceive(Object message) throws Exception {
    if(message instanceof TraceInfo) {
      final TraceInfo traceInfo = (TraceInfo) message;
      final List<SegmentInfo> segments = seqAsJavaList(traceInfo.segments());

      System.out.println("#################################################");
      System.out.println("Trace Name: " + traceInfo.name());
      System.out.println("Timestamp: " + traceInfo.timestamp());
      System.out.println("Elapsed Time: " + traceInfo.elapsedTime());
      System.out.println("Segments: ");

      segments.forEach(segmentInfo -> {
        System.out.println("    ------------------------------------------");
        System.out.println("    Name: " + segmentInfo.name());
        System.out.println("    Category: " + segmentInfo.category());
        System.out.println("    Library: " + segmentInfo.library());
        System.out.println("    Timestamp: " + segmentInfo.timestamp());
        System.out.println("    Elapsed Time: " + segmentInfo.elapsedTime());
      });

    } else unhandled(message);
  }
}

//输出内容暂时不翻译

在Ubuntu上下载Percona XtraBackup需要执行以下步骤: 1. 首先,你需要访问Percona官方网站下载页面,链接是[https://www.percona.com/downloads/XtraBackup/LATEST/](https://www.percona.com/downloads/XtraBackup/LATEST/)。这里你可以找到最新版本的Percona XtraBackup。 2. 在下载页面中,你会看到多个下载选项。根据你的Ubuntu版本选择合适的下载选项,例如:percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12.tar.gz。 3. 点击下载链接后,下载将会开始。 4. 下载完成后,你可以使用终端或文件管理器导航到下载的文件所在的目录。 5. 如果你下载的是tar.gz文件,你可以解压缩该文件,使用以下命令: ``` tar -zxvf percona-xtrabackup-2.4.24-Linux-x86_64.glibc2.12.tar.gz ``` 6. 如果你下载的是.rpm文件,你可以使用以下命令安装: ``` sudo rpm -i percona-xtrabackup-24-2.4.24-1.el7.x86_64.rpm ``` 请注意,以上是基本的下载和安装步骤。根据你的具体需求和环境,可能还需要进行一些其他的配置和操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [percona-xtrabackup-24-2.4.24-1-最新版..zip](https://download.csdn.net/download/kanon_lgt/85052364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Percona-XtraBackup](https://download.csdn.net/download/u014151871/9819546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [percona-xtrabackup-24-2.4.9-1.el7.x86_64.zip](https://download.csdn.net/download/lkx444368875/12588712)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值