#zipkin #tracing #opentracing

opentracingrust_zipkin

OpenTracingRust 的 Zipkin 跟踪器

9 个版本

使用旧的 Rust 2015

0.3.1 2020 年 5 月 5 日
0.3.0 2020 年 4 月 29 日
0.2.0 2019 年 9 月 13 日
0.1.6 2019 年 5 月 27 日
0.1.0 2018 年 2 月 24 日

#5 in #zipkin


2 个 crate 中使用 (通过 replicante_util_tracing)

MIT 许可证

110KB
2K SLoC

OpenTracingRust Zipkin

Zipkin 跟踪器,用于 OpenTracingRust

使用方法

一旦你的 Cargo.toml 包含对 opentracingrust_zipkin 的依赖,创建一个跟踪器和收集器,并初始化系统

extern crate opentracingrust;
extern crate opentracingrust_zipkin;

use opentracingrust::utils::GlobalTracer;
use opentracingrust::utils::ReporterThread;

use opentracingrust_zipkin::ZipkinTracer;
use opentracingrust_zipkin::ZipkinEndpoint;
use opentracingrust_zipkin::KafkaCollector;


fn main() {
    let (tracer, receiver) = ZipkinTracer::new();
    GlobalTracer::init(tracer);

    let mut collector = KafkaCollector::new(
        ZipkinEndpoint::new(None, None, Some(String::from("zipkin-example")), None),
        String::from("zipkin"),  // Kafka topic
        vec![String::from("127.0.0.1:9092")]  // Kafka seed
    );
    let reporter = ReporterThread::new(receiver, move |span| {
        match collector.collect(span) {
            Err(err) => println!("Failed to report span: {:?}", err),
            _ => (),
        }
    });
}

Thrift

此 crate 使用 thrift 向 Zipkin 发送消息并用于二进制编码。

thrift 生成的 rust 模块已提交到源代码控制,以便无需安装支持 rust 的 thrift 编译器即可编译 crate。

此 crate 包含一个 Dockerfile,它安装并配置 thrift 以支持 rust。以下命令可用于从 thrift 定义重新生成 rust 代码

cd thrift/
docker build --rm --tag thrift-compiler .
docker run --rm -it -v $PWD:/thrift/models -v $PWD/../src:/thrift/src thrift-compiler bash
thrift -r --out /thrift/src/thrift_gen --gen rs /thrift/models/binary_format.thrift
thrift -r --out /thrift/src/thrift_gen --gen rs /thrift/models/zipkinCore.thrift

Docker Zipkin 操场

要使用 docker 和 docker-compose 尝试跟踪器和帮助开发,可以运行一个带有 docker 的 zipkin-in-a-box。

以下步骤适用于提供的 docker 脚本

  1. git clone https://github.com/openzipkin/docker-zipkin.git
  2. 更新 KAFKA_ADVERTISED_HOST_NAME 1. 将其设置为 kafka-zookeeper 以使所有容器正确协同工作。2. 编辑 docker-zipkin/docker-compose-kafka10.yml 中的第 15 行。3. 新行应该是 KAFKA_ADVERTISED_HOST_NAME=kafka-zookeeper
  3. 如果您想从 docker-compose 容器外部访问 kafka (很可能需要这样做):1. 找到 kafka-zookeeper 容器的 IP。2. 编辑 /etc/hosts。3. 添加 <IP> kafka-zookeeper
  4. 启动所有 zipkin 进程:docker-compose -f docker-compose.yml -f docker-compose-kafka10.yml -f docker-compose-ui.yml up

依赖项

~4.5–9.5MB
~203K SLoC