You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成Prometheus端点遇404及依赖相关疑问求解

问题解决方案

一、/actuator/prometheus 404 问题排查

  1. 修正配置文件语法
    你当前配置management.endpoints.web.exposure.include=prometheus, *里,逗号后带了空格,会被Spring解析成包含prometheus (带空格的名称)和*,导致真正的prometheus端点没被暴露。把配置改成:

    management.endpoints.web.exposure.include=prometheus,*
    

    或者直接用management.endpoints.web.exposure.include=*(暴露所有actuator端点,测试场景更方便)。

  2. 检查依赖加载情况
    若Spring Boot版本与micrometer-registry-prometheus版本不兼容,可能导致端点无法注册。可通过生成依赖树(下文会讲方法)确认该依赖是否被正确引入,是否存在版本冲突或缺失。
    另外,可尝试把<scope>runtime</scope>改成<scope>compile</scope>,重新打包启动应用——部分场景下runtime scope可能导致依赖未被正确加载到运行环境。

  3. 查看启动日志
    启动应用时,关注日志中关于actuator端点的输出,比如类似Exposing X endpoint(s) beneath base path '/actuator'的内容。如果日志里没有prometheus,说明端点根本没被注册,大概率是依赖引入或版本兼容问题。

二、生成Maven依赖树(mvn命令不在系统路径时)

有几种不需要系统全局Maven的方法:

  • 用IDE直接执行:
    • IDEA:打开右侧Maven面板,找到你的项目,展开Lifecycle,右键选择Execute Maven Goal,输入dependency:tree后运行。
    • Eclipse:打开Maven Projects视图,右键项目,选择Run As -> Maven build...,在Goals栏输入dependency:tree,点击Run。
  • 用项目自带的Maven Wrapper:
    项目根目录下如果有mvnw(Linux/Mac)或mvnw.cmd(Windows)文件,直接在终端执行:
    # Linux/Mac
    ./mvnw dependency:tree
    # Windows
    mvnw.cmd dependency:tree
    
    这个文件是项目自带的Maven包装器,无需系统安装Maven即可使用。

三、runtime的作用

这个参数用来指定依赖的生效阶段:

  • 标记为runtime的依赖,编译代码时不需要,仅在应用运行时才会加载该jar包。也就是说你的业务代码不会直接引用这个依赖里的类,仅框架在运行时会调用它。
  • 对于micrometer-registry-prometheus来说,设置为runtime是合理的,因为你不需要手动写代码调用它的API,Spring Boot会自动完成配置。但如果出现端点未加载的情况,可以临时改成compile来排查是否是依赖加载问题。

内容的提问来源于stack exchange,提问作者Adder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 10:17:20