部署
另请参阅
Jaeger 后端发布为一个单独的二进制文件或容器镜像(参见 下载)。尽管如此,它可以配置为扮演不同的 角色,例如 all-in-one、collector(收集器)、query(查询器)和 ingester(摄取器)(参见 架构)。
配置
必须通过 --config
命令行参数提供一个明确的 YAML 配置文件(参见 配置)。在容器中运行时,配置文件的路径必须映射到容器文件系统中(即下面的 -v ...
映射)
docker run --rm --name jaeger \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
-p 5778:5778 \
-p 9411:9411 \
-v /path/to/local/config.yaml:/jaeger/config.yaml \
jaegertracing/jaeger:2.6.0 \
--config /jaeger/config.yaml
扩展
Jaeger 的 collector(收集器)和 query(查询器)都是无状态的,因此可以并行运行多个实例。
升级
由于 Jaeger 微服务(组件)是无状态的,所有状态都存储在数据存储中。当发布版本未引入破坏性变更时,各个 Jaeger 组件的升级顺序无关紧要。
我们尽量避免在新版本中引入任何类型的破坏性变更,但有时是不可避免的,并在发布说明中明确指出。在这些情况下,最安全的升级顺序是从摄取管道的末端开始:首先是 query(查询器),如果使用了 Kafka,然后是 ingester(摄取器),最后是 collector(收集器)。这个顺序确保接收组件运行在新版本上,并且能够在管道中较早的组件升级之前理解来自它们的任何协议变化。
最后,有时我们会引入存储模式变更,这可能需要在升级 Jaeger 组件之前采取一些预先措施。此类变更始终会在发布说明中标记为破坏性变更,并包含具体的升级说明。
管理端口
默认情况下会暴露以下面向内部的端口(可通过配置更改)
端口 | 协议 | 端点 | 功能 |
---|---|---|---|
8888 | HTTP | /metrics | 用于暴露指标的指标端口,可由兼容 Prometheus 的系统抓取 |
8889 | HTTP | /metrics | 用于从 Kafka 主题读取数据并写入受支持后端的摄取器端口 |
13133 | HTTP | /status | 通过 healthcheckv2 扩展进行的健康检查端口 |
27777 | HTTP | / | 按照 Go 标准用于进程级别指标的 expvar 端口 |
请参阅 API 查看所有 API 端口列表。
SPM
服务性能监控 (SPM) 需要部署兼容 Prometheus 的指标存储(参见 SPM 页面)。
服务地图
为了显示服务依赖关系图,生产部署需要一个外部进程来聚合数据并计算服务之间的依赖链接。项目 spark-dependencies 是一个 Spark 作业,它派生依赖链接并直接将其写入存储。