9 个版本
使用旧的 Rust 2015
0.3.1 | 2020 年 5 月 5 日 |
---|---|
0.3.0 |
|
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)
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 脚本
git clone https://github.com/openzipkin/docker-zipkin.git
- 更新
KAFKA_ADVERTISED_HOST_NAME:
1. 将其设置为kafka-zookeeper
以使所有容器正确协同工作。2. 编辑docker-zipkin/docker-compose-kafka10.yml
中的第 15 行。3. 新行应该是KAFKA_ADVERTISED_HOST_NAME=kafka-zookeeper
。 - 如果您想从 docker-compose 容器外部访问 kafka (很可能需要这样做):1. 找到
kafka-zookeeper
容器的 IP。2. 编辑/etc/hosts
。3. 添加<IP> kafka-zookeeper
。 - 启动所有 zipkin 进程:
docker-compose -f docker-compose.yml -f docker-compose-kafka10.yml -f docker-compose-ui.yml up
依赖项
~4.5–9.5MB
~203K SLoC