离线环境下springboot 2.4.5版本 actuator与autoconfigure冲突问题

离线环境Spring Boot 2.4.5 Actuator依赖冲突问题

离线环境下springboot 2.4.5版本 actuator与autoconfigure冲突问题

基础pom依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.4.5</version>
        </dependency>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <version>1.6.6</version>
        </dependency>

在引入spring-boot-starter-actuator后不能通过网页查看actuator信息,在idea中也只能看到Beans相关的信息,效果上看是未能识别引入的包。AI搜索指挥告诉你确认spring-boot-starter-actuator、 spring-boot-starter 和 micrometer-registry-prometheus 的版本兼容关系。

依赖冲突

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator-autoconfigure</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
            <version>2.6.12</version>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka-clients</artifactId>
            <version>2.6.0</version>
        </dependency>

在引入spring-boot-actuator-autoconfigure 后会提示与kafka相关的类缺失。
同时也会提示缺少micrometer相关的类。

解决方案

引入spring-boot-actuator

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
            <version>2.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator-autoconfigure</artifactId>
            <version>2.4.5</version>
        </dependency>

补充缺失的关联依赖

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-fx</artifactId>
            <version>5.3.6</version>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
            <version>1.6.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
            <version>1.3.1</version>
        </dependency>

更新pom后 重启项目后即可解决

### 禁用特定端点 在某些场景下,可能需要禁用一些不必要的 Actuator 端点以提高安全性或减少暴露面。可以通过配置文件设置来实现这一点: ```yaml management: endpoint: shutdown: enabled: false # 关闭 shutdown 端点 ``` 通过这种方式,可以控制哪些端点是可用的,从而更好地满足安全性和监控需求[^1]。 ### 集成 Prometheus 监控 要在 Spring Boot 应用中集成 Prometheus 监控,首先需要引入相关的依赖项。由于目标环境离线的,因此必须提前下载所需的依赖并将其部署到本地仓库中。 #### 下载依赖 在有网络连接的环境中,使用 Maven 或 Gradle 工具下载以下依赖包及其传递依赖: - `io.micrometer:micrometer-core` - `io.micrometer:micrometer-registry-prometheus` 对于 Maven 用户,可以使用如下命令下载依赖: ```bash mvn dependency:get -Dartifact=io.micrometer:micrometer-core:latest.release mvn dependency:get -Dartifact=io.micrometer:micrometer-registry-prometheus:latest.release ``` 将下载好的 JAR 文件复制到目标机器上的合适位置,并安装到本地 Maven 仓库: ```bash mvn install:install-file -Dfile=path/to/micrometer-core.jar -DgroupId=io.micrometer -DartifactId=micrometer-core -Dversion=x.x.x -Dpackaging=jar mvn install:install-file -Dfile=path/to/micrometer-registry-prometheus.jar -DgroupId=io.micrometer -DartifactId=micrometer-registry-prometheus -Dversion=x.x.x -Dpackaging=jar ``` #### 添加依赖到项目 更新项目的 `pom.xml` 文件,添加 Micrometer 和 Prometheus 注册表的依赖: ```xml <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>x.x.x</version> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> <version>x.x.x</version> </dependency> ``` #### 配置 Prometheus 暴露指标端点 编辑 `application.yml` 文件,启用 Prometheus 端点并配置其暴露方式: ```yaml management: endpoints: web: exposure: include: "prometheus,health,info" # 暴露 prometheus 端点以及其他必要端点 metrics: tags: application: ${spring.application.name} # 设置全局标签 prometheus: enabled: true # 启用 Prometheus 支持 ``` #### 自定义指标收集 如果默认提供的指标不足以满足需求,还可以创建自定义指标。例如,记录某个业务逻辑的执行次数: ```java import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.MeterRegistry; @Component public class BusinessMetrics { private final Counter businessOperationCounter; public BusinessMetrics(MeterRegistry registry) { this.businessOperationCounter = Counter.builder("business_operations_total") .description("Total number of business operations performed.") .register(registry); } public void incrementBusinessOperation() { businessOperationCounter.increment(); } } ``` 这段代码展示了如何利用 Micrometer 创建一个名为 `business_operations_total` 的计数器,并在每次执行特定业务操作时递增它[^3]。 #### 验证配置 启动应用后,访问 `/actuator/prometheus` 端点来验证是否能够成功获取 Prometheus 格式的指标数据。这一步骤确保了所有配置正确无误,并且 Prometheus 能够顺利抓取这些指标用于后续分析和报警设置[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值