Apache Ignite Docker容器配置OpenCensus导出器问题排查
Apache Ignite 2.15 Docker容器OpenCensus指标配置问题解决方法
1. 修正依赖加载逻辑
Ignite Docker容器的OPTION_LIBS环境变量会自动从官方仓库拉取对应版本的可选模块,无需手动挂载Jar包到user_libs目录——手动挂载可能导致版本不匹配、类加载冲突或覆盖官方模块。请移除docker-compose中挂载user_libs的配置项,仅保留:
environment: - OPTION_LIBS=ignite-opencensus,ignite-web
2. 检查并完善default-config.xml配置
确保配置包含以下关键部分:
启用Metrics收集与OpenCensus导出
<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration"> <!-- 启用Metrics收集 --> <property name="metricsEnabled" value="true"/> <!-- 配置OpenCensus指标导出器 --> <property name="metricExporterSpi"> <list> <bean class="org.apache.ignite.spi.metric.opencensus.OpenCensusMetricExporterSpi"> <property name="exporter"> <!-- 指定Prometheus监听端口为9000 --> <bean class="io.opencensus.exporter.metrics.prometheus.PrometheusMetricsExporter"> <constructor-arg type="int" value="9000"/> </bean> </property> </bean> </list> </property> <!-- 配置Web模块启动器 --> <property name="startupSpi"> <list> <bean class="org.apache.ignite.startup.servlet.ServletContextListenerStartup"/> </list> </property> </bean>
3. 确认Docker端口映射
在docker-compose的ports段中明确映射9000端口,确保外部可访问:
ports: - "9000:9000" # Prometheus指标端口 - "10800:10800" # Ignite客户端连接端口 - "47100:47100" # 节点间通信端口 - "47500:47500" # 节点发现端口
4. 验证容器内模块加载状态
进入容器检查可选模块是否正确加载:
docker exec -it <你的Ignite容器ID> bash # 查看官方可选模块目录 ls /opt/ignite/libs/optional/
确认存在ignite-opencensus和ignite-web目录及对应Jar包。
5. 排查启动日志细节
即使无错误日志,也需检查初始化关键日志:
docker logs <你的Ignite容器ID> | grep -i "metric\|opencensus\|prometheus\|web"
若日志中出现OpenCensus metrics exporter started on port 9000类信息,说明导出器已正常启动;若缺失该日志,需确认容器是否加载了修改后的default-config.xml(可通过IGNITE_CONFIG环境变量明确指定配置文件路径)。
额外注意事项
- 确保
ignite-opencensus模块版本与Ignite核心版本严格一致(2.15.0),避免跨版本依赖问题。 - jdk11镜像无需额外调整JVM参数,官方镜像已适配jdk11环境。
内容的提问来源于stack exchange,提问作者Mitch
相关产品推荐
相关产品推荐

