客户端库功能
Jaeger 客户端已停止维护。请参考此 通知 。
下表提供了现有客户端库的功能矩阵。标有 ?
的单元格表示不知道给定客户端是否支持给定功能,需要进行额外研究和文档更新。
该表格是根据 data/clients.yaml 自动生成的。
向 Jaeger 后端报告跨度的數據格式和传输方式 | ||||||
---|---|---|---|---|---|---|
功能 | Go | Java | Node.js | Python | C++ | C# |
报告 jaeger.thrift , Compact 协议,通过 UDP | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ |
报告 jaeger.thrift , Binary 协议,通过 UDP | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
报告 jaeger.thrift , Binary 协议,通过 TCP (HTTP) | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
报告 Zipkin Thrift,Binary 协议,通过 TCP (HTTP) | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
进程间传播线格式 (标头) | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
Uber 的原始标头 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Zipkin 的 B3 标头 | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
W3C 跟踪上下文标头 | 即将推出 | ✅ | 即将推出 | 即将推出 | 即将推出 | 即将推出 |
支持入站 jaeger-debug-id 标头 | 当没有跟踪时 | 当没有跟踪时 | ❔ | ✅ | ❔ | 当没有跟踪时 |
接受来自 jaeger-baggage 标头的行李 | 当没有跟踪时 | ❌ | ❔ | ✅ | ❔ | ❌ |
支持 128 位跟踪 ID | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
指标 | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
支持标准跟踪器指标 (启动的跨度数、完成的跨度数、报告的跨度数等) | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ |
支持标准 RPC 指标 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
指标在 Prometheus 格式中 | ✅ | ✅ | ❌ | ✅ | ❔ | ❔ |
跟踪器配置 | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
支持声明式跟踪器配置 | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ |
允许配置跟踪器标签,又称进程标签 | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ |
允许远程配置采样器 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
远程可配置的 每个端点采样器 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
远程可配置的行李限制 | ✅ | 即将推出 | 即将推出 | 即将推出 | ❌ | 即将推出 |
通过环境变量进行跟踪器配置 | ||||||
功能 | Go | Java | Node.js | Python | C++ | C# |
JAEGER_SERVICE_NAME 定义与发出的跨度关联的服务名称。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_TAGS 定义静态标签的逗号分隔列表,即“跟踪器标签”,例如 hostname=foobar,my.app.version=1.2.3 。这些标签作为 Process 标签添加到每个跨度。 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JAEGER_DISABLED (不推荐)设置为 true 时,指示配置返回一个无操作跟踪器。无操作跟踪器不会传播跟踪/跨度 ID 以及行李。与其完全禁用跟踪器,不如使用参数为 0 的 const 采样器,这将最大程度地减少开销,但会保持传播。 | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ |
JAEGER_AGENT_HOST 定义通过 UDP/Thrift 报告跨度的主机名。为了避免数据包丢失,代理预计将在与应用程序相同的机器上运行。当主机上存在多个网络命名空间时,此变量非常有用。 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JAEGER_AGENT_PORT 定义通过 UDP/Thrift 报告跨度的端口。 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
JAEGER_ENDPOINT 定义通过 HTTP/Thrift 报告跨度的 URL。此设置允许跨度直接提交到收集器的部署模式。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_AUTH_TOKEN 定义通过 HTTP 报告时的可选身份验证令牌。 | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
JAEGER_USER 可用于通过 HTTP 报告时的基本身份验证。 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
JAEGER_PASSWORD 可用于通过 HTTP 报告时的基本身份验证。 | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
JAEGER_REPORTER_LOG_SPANS 指示 报告器 记录已完成的跨度 ID。报告器可能需要一个记录器才能使此选项生效。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_REPORTER_MAX_QUEUE_SIZE 定义用于在发送跨度之前保存跨度的内存缓冲区的最大大小。 | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ |
JAEGER_REPORTER_FLUSH_INTERVAL 定义报告器刷新跨度批次的多长时间。如果批次大小达到最大 UDP 数据包大小(约 64Kb),报告器也可以刷新批次。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_TYPE 定义要使用的采样器类型,例如 probabilistic 或 const (请参阅 采样 )。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_PARAM 为采样器提供配置值,例如 probability=0.001 (请参阅 采样 )。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_MANAGER_HOST_PORT 定义提供客户端配置(例如采样策略、行李限制、限流配置等)的 HTTP 服务器的地址。变量名称是采样策略服务器仅提供采样策略时的遗留错误命名。目前,只有 jaeger-agent 实施此 REST API。 | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
JAEGER_SAMPLER_REFRESH_INTERVAL 定义采样器轮询配置服务器以更新采样策略的频率。 | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
JAEGER_SAMPLER_MAX_OPERATIONS 指示自适应采样器限制采样器将跟踪的不同操作名称的数量,以避免无限制的内存使用。 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
JAEGER_PROPAGATION 定义跟踪器使用的传播格式。支持的值有 jaeger (在此处定义 此处 ),b3 (在此处定义 此处 )和 w3c (在此处定义 此处 )。 | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
JAEGER_TRACEID_128BIT 如果为 true,则指示跟踪器生成 128 位跟踪 ID,而不是默认的 64 位。将来,128 位将成为默认值。 | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ |
JAEGER_RPC_METRICS 如果为 true,则启用从跟踪检测中生成额外的 RPC 度量。这是 Go 客户端中的实验性功能。另请参阅 https://github.com/opentracing-contrib/java-metrics 。 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |