4 个版本
0.2.1 | 2024 年 6 月 11 日 |
---|---|
0.2.0 | 2024 年 6 月 10 日 |
0.1.1 | 2018 年 1 月 31 日 |
0.1.0 | 2018 年 1 月 31 日 |
#558 在 命令行工具
每月下载 103 次
22KB
483 行
jaegercat
一个便捷的命令行工具,用于显示 Jaeger 客户端发出的追踪信息。
安装
预编译的二进制文件
Linux 环境下的预编译二进制文件可在 发布页面 获取。
$ curl -L https://github.com/sile/jaegercat/releases/download/0.1.1/jaegercat-0.1.1.linux -o jaegercat
$ chmod +x jaegercat
$ ./jaegercat -h
jaegercat 0.1.1
USAGE:
jaegercat [OPTIONS]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
--binary-thrift-port <BINARY_THRIFT_PORT> [default: 6832]
--compact-thrift-port <COMPACT_THRIFT_PORT> [default: 6831]
-f, --format <FORMAT> [default: json] [values: raw, json, json-pretty]
--log-level <LOG_LEVEL> [default: info] [values: debug, info, error]
-b, --udp-buffer-size <UDP_BUFFER_SIZE> [default: 65000]
使用 Cargo
如果您已经安装了 Cargo,您可以在以下命令中轻松安装 jaegercat
$ cargo install jaegercat
示例
基本用法
在终端中启动 jaegercat
$ jaegercat
Jan 31 14:18:06.989 INFO UDP server started, port: 6831
Jan 31 14:18:06.990 INFO UDP server started, port: 6832
在另一个终端中发出追踪信息
$ git clone https://github.com/sile/rustracing_jaeger.git
$ cd rustracing_jaeger
$ cargo run --example report
jaegercat
将输出如下 JSON 格式的信息
$ jaegercat
{"emit_batch":{"process":{"service_name":"example","tags":{"hello":"world","hostname":"DESKTOP-FJQCKIF","jaeger.version":"rustracing_jaeger-0.1.3"}},"spans":[{"trace_id":"0x154050ce43d48b612ae64ad7cd070e8e","span_id":"0x4c123d1fd41219d5","parent_span_id":"0x87a5fd207c065420","operation_name":"sub","references":[{"ChildOf":{"trace_id":"0x154050ce43d48b612ae64ad7cd070e8e","span_id":"0x87a5fd207c065420"}}],"flags":1,"start_datetime":"2018-01-31 14:24:18","start_unixtime":1517376258.665418,"duration":0.010196,"tags":{"foo":"bar"},"logs":[{"datetime":"2018-01-31 14:24:18","unixtime":1517376258.665475,"fields":{"event":"error","message":"something wrong"}}]},{"trace_id":"0x154050ce43d48b612ae64ad7cd070e8e","span_id":"0x87a5fd207c065420","operation_name":"main","flags":1,"start_datetime":"2018-01-31 14:24:18","start_unixtime":1517376258.654844,"duration":0.020779}]}}
使用 jq
命令
使用 jq
命令处理生成的 JSON 非常方便。
// Filter only spans whose operation name is "main".
$ jaegercat | jq '.emit_batch.spans[] | select(.operation_name == "main")'
{
"trace_id": "0x3dfcffdfe5b53b1d1fb792d1fbea9f8b",
"span_id": "0xeba0e30f2f2d6e51",
"operation_name": "main",
"flags": 1,
"start_datetime": "2018-01-31 14:36:01",
"start_unixtime": 1517376961.354905,
"duration": 0.020933
}
参考
Jaeger 数据模型(IDL)
依赖项
~5.5MB
~105K SLoC