功能特性

高可扩展性

Jaeger 后端旨在避免单点故障,并可根据业务需求进行扩展。

云原生

Jaeger 后端以容器镜像或原始二进制文件的形式分发,支持多个平台。二进制文件的行为可通过 YAML 配置文件进行自定义。借助 Alauda Build of OpenTelemetry v2 Operator,可辅助将其部署到 Kubernetes 集群。

OpenTelemetry

Jaeger 可以接收标准 OpenTelemetry Protocol (OTLP) 中的 trace 数据。

多种存储后端

Jaeger 可与越来越多的存储后端配合使用:

WARNING

Alauda Distributed Tracing 仅支持 Elasticsearch 8.x 和 OpenSearch 3.x。

  • 它原生支持常见的开源 NoSQL 数据库作为 trace 存储后端:Cassandra 4.0+、Elasticsearch 7.x/8.x 和 OpenSearch 1.0+。
  • 还支持使用 Badger 的嵌入式数据库,以及用于测试环境的简单内存存储。

采样

为控制应用开销和存储成本,Jaeger 支持多种采样方式:带集中式远程配置的基于头部的采样(静态或自适应)以及基于尾部的采样。

现代 Web UI

Jaeger Web UI 采用 JavaScript 实现,是一个 React 应用。v1.0 中发布了多项性能改进,使 UI 能够高效处理大量数据,并展示包含数万条 span 的 trace(例如,我们尝试过一个包含 80,000 条 span 的 trace)。

可观测性

所有 Jaeger 后端组件默认都会暴露 Prometheus 指标。日志使用结构化日志库 zap 写入 stdout。

服务性能监控(SPM)

SPM 通过从 trace 中计算聚合指标,并将其可视化为时间序列图表,帮助监控和分析服务性能趋势。它是识别和分析性能问题的强大工具,

更多详情请参见 服务性能监控(SPM)

Zipkin 兼容性

虽然我们建议使用 OpenTelemetry 对应用进行埋点,但如果你的组织已经投入大量精力使用 Zipkin 库进行埋点,就无需重写所有代码。Jaeger 通过 HTTP 接受 Zipkin 格式的 span(Thrift、JSON v1/v2 和 Protobuf),从而提供与 Zipkin 的向后兼容性。只需将流量从 Zipkin 库路由到 Jaeger 后端,即可完成从 Zipkin 后端的切换。