Apache Artemis v2.31.0 Prometheus metrics插件HTTP端点频繁返回404
解决Apache Artemis Prometheus指标端点间歇性404问题
核心排查与修复方向
调整插件加载与HTTP服务启动顺序
插件日志显示初始化完成,但可能Broker的HTTP服务未完全就绪时插件已完成注册,导致端点未正确挂载。修改broker.xml的HTTP acceptor配置,延长启动超时时间,确保HTTP服务稳定后再加载插件:<acceptor name="http-acceptor">tcp://0.0.0.0:9050?protocols=HTTP;startup-timeout=60000</acceptor>验证版本兼容性与依赖完整性
确认插件版本与Artemis v2.31.0完全匹配,检查Broker的lib目录是否包含插件的所有依赖jar包。若存在缺失,重新下载对应版本的插件包替换现有文件后重启Broker。深挖日志定位注册失败原因
开启Broker的DEBUG级别日志,重点关注org.apache.activemq.artemis.core.server.plugin和org.eclipse.jetty.server相关日志条目,排查是否有权限限制、路径冲突或注册报错等细节。确认HTTP端点配置正确性
检查broker.xml的web节点配置,确保metrics插件的端点路径未被其他Web应用或拦截器覆盖:<web bind="http://0.0.0.0:9050" path="web"> <app url="metrics" war="artemis-prometheus-metrics-plugin.war"/> </web>禁用Jetty上下文自动重载
间歇性404可能源于Jetty上下文意外重载,导致端点丢失。在broker.xml的web节点添加contextReloadable="false"参数:<web bind="http://0.0.0.0:9050" path="web" contextReloadable="false"> <!-- 其他web应用配置 --> </web>
临时缓解方案
若问题频繁出现,可编写监控脚本定期调用curl -v http://broker:9050/metrics/检查状态,当返回404时自动触发Broker重启,减少人工干预成本。
内容的提问来源于stack exchange,提问作者allwynsam
相关产品推荐
相关产品推荐

