这是一个Spark作业,用于从存储中收集跟踪跨度(span),分析服务间的链接关系,并存储结果供后续UI展示。注意,生产部署需要此作业,而all-in-one分发版不需要。
此作业解析指定日期(基于UTC)的所有跟踪数据,默认处理当天数据,也可显式指定其他日期。本项目基于zipkin-dependencies。
Spark作业可作为Docker容器运行,也可作为Java可执行文件运行:
bash$ docker run --env STORAGE=cassandra --env CASSANDRA_CONTACT_POINTS=host1,host2 jaegertracing/spark-dependencies
使用--env JAVA_OPTS=-Djavax.net.ssl.设置信任存储和其他Java属性。
bashSTORAGE=cassandra java -jar jaeger-spark-dependencies.jar
默认情况下,此作业解析当天UTC午夜后的所有跟踪数据。您可以通过YYYY-mm-dd格式的参数指定其他日期,或通过环境变量指定日期。
bash# 示例:在OS/X上运行作业处理昨天的跟踪数据 $ STORAGE=cassandra java -jar jaeger-spark-dependencies.jar `date -uv-1d +%F` # 或在Linux上 $ STORAGE=cassandra java -jar jaeger-spark-dependencies.jar `date -u -d '1 day ago' +%F`
jaeger-spark-dependencies通过环境变量应用配置参数。
以下变量适用于所有存储层:
SPARK_MASTER:提交作业的Spark主节点;默认为local[*]DATE:YYYY-mm-dd格式的日期,表示将为其创建依赖链接的日期。当STORAGE=cassandra时使用Cassandra存储。
CASSANDRA_KEYSPACE:要使用的keyspace;默认为“jaeger_v1_dc1”。CASSANDRA_CONTACT_POINTS:Cassandra集群的主机/IP地址列表,逗号分隔;默认为localhost。CASSANDRA_LOCAL_DC:要连接的本地DC(将忽略其他节点)。CASSANDRA_USERNAME和CASSANDRA_PASSWORD:Cassandra认证信息;认证失败时启动时会抛出异常。CASSANDRA_USE_SSL:需要javax.net.ssl.trustStore和javax.net.ssl.trustStorePassword,默认为false。CASSANDRA_CLIENT_AUTH_ENABLED:启用SSL连接的客户端认证,需要javax.net.ssl.keyStore和javax.net.ssl.keyStorePassword,默认为false。示例用法:
bash$ STORAGE=cassandra CASSANDRA_CONTACT_POINTS=localhost:9042 java -jar jaeger-spark-dependencies.jar
当STORAGE=elasticsearch时使用Elasticsearch存储。
ES_NODES:Elasticsearch HTTP主机的逗号分隔列表;默认为localhost。如果未监听9200端口,需添加端口部分。只需其中一个主机可用即可获取集群中的其余节点。建议设置为集群的所有主节点。SSL使用URL格式,例如“[***]ES_NODES_WAN_ONLY:设为true以仅使用ES_HOSTS中设置的值(例如Elasticsearch集群在Docker中时)。如果使用AWS Elasticsearch等云服务提供商,设为true;默认为false。ES_USERNAME和ES_PASSWORD:Elasticsearch基本认证信息,用于X-Pack安全(原Shield);默认不提供用户名和密码。ES_CLIENT_NODE_ONLY:设为true以禁用Elasticsearch集群节点发现并启用nodes.client.only;如果Elasticsearch集群的数据节点仅监听回环IP,设为true;默认为false。ES_INDEX_PREFIX:Jaeger索引的前缀;默认未设置。ES_TIME_RANGE:作业应查找过去多久的span,最大值和默认值为24h。可使用date-math接受的任何值,但锚点始终为now。示例用法:
bash$ STORAGE=elasticsearch ES_NODES=http://localhost:9200 java -jar jaeger-spark-dependencies.jar
要在本地构建作业并运行测试:
bash./mvnw clean install # 如果失败,添加SPARK_LOCAL_IP=127.0.0.1 STORAGE=elasticsearch ES_NODES=http://localhost:9200 java -jar jaeger-spark-dependencies/target/jaeger-spark-dependencies-0.0.1-SNAPSHOT.jar docker build -t jaegertracing/spark-dependencies:latest .
测试中可通过环境变量JAEGER_VERSION或系统属性jaeger.version指定Jaeger镜像版本,默认使用最新镜像。
Apache 2.0 许可证。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429