功能特性

高可扩展性

Jaeger backend 的设计没有单点故障,并且能够随着业务需求进行扩展。

云原生

Jaeger backend 以容器镜像或原始二进制文件的形式分发,可用于多个平台。该二进制文件的行为可以通过 YAML 配置文件进行自定义。部署到 Kubernetes 集群由 Alauda Build of OpenTelemetry v2 Operator 提供协助。

OpenTelemetry

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

多种存储后端

Jaeger 可以与越来越多的存储后端一起使用:

WARNING

Alauda Distributed Tracing 仅支持 Elasticsearch 8.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 backend 组件默认都会暴露 Prometheus 指标。 日志使用结构化日志库 zap 输出到 stdout。

服务性能监控(SPM)

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

有关更多详细信息,请参阅 Service Performance Monitoring (SPM)

Zipkin 兼容性

虽然我们建议使用 OpenTelemetry 为应用添加埋点,但如果您的组织已经在使用 Zipkin 库进行埋点,就不必重写全部代码。Jaeger 通过 HTTP 接收 Zipkin 格式的 span(Thrift、JSON v1/v2 和 Protobuf),从而提供与 Zipkin 的向后兼容性。从 Zipkin backend 迁移,只需要将流量从 Zipkin 库路由到 Jaeger backend。