部署
另请参阅
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.8.0 \
--config /jaeger/config.yaml
扩容
Jaeger **收集器**和**查询器**都是无状态的,因此可以并行运行多个实例。
升级
由于 Jaeger 微服务(组件)是无状态的,所有状态都存储在数据存储中。当发布版本没有引入破坏性更改时,单个 Jaeger 组件的升级顺序无关紧要。
我们尽量避免在新版本中引入任何破坏性更改,但有时这些更改是不可避免的,并且会在发布说明中明确指出。在这些情况下,最安全的升级顺序是从摄入管道的末端开始:首先是**查询器**,如果使用 Kafka 则接着是**摄入器**,然后是**收集器**。这种顺序确保了接收组件运行在新版本上,并且能够在管道中较早的组件升级之前理解来自它们的任何协议更改。
最后,有时我们会引入存储模式更改,这可能需要在升级 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 作业,它派生依赖链接并将其直接写入存储。