SpringBoot实现监控Actuator,关闭redis监测

作者:zzzgd816 时间:2021-08-01 04:01:33 

SpringBoot监控Actuator,关闭redis监测

方法

当我们导入了spring-boot-starter-actuator这个依赖后, SpringBoot会默认去监测一些信息。其中就包括redis、 会根据redis的默认初始配置, localhost:6379 尝试连接redis。如果我们没有用到redis, 启动就会报错


<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
     <version>2.2.1.RELEASE</version>
  </dependency>

比如我在使用SpringBootAdmin的时候,其中内置了Actuator的依赖, 启动报错

[WARN ] 2020-05-28 09:28:17.179 [registrationTask1] de.codecentric.boot.admin.client.registration.ApplicationRegistrator - Failed to register application as Application(name=admin-client, managementUrl=http://Gordon-pc:8768/actuator, healthUrl=http://Gordon-pc:8768/actuator/health, serviceUrl=http://Gordon-pc:8768/) at spring-boot-admin ([http://localhost:8769/instances]): I/O error on POST request for "http://localhost:8769/instances": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect. Further attempts are logged on DEBUG level
[WARN ] 2020-05-28 09:28:19.075 [boundedElastic-1] org.springframework.boot.actuate.redis.RedisReactiveHealthIndicator - Redis health check failed
org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1200)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getConnection(LettuceConnectionFactory.java:1179)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getSharedReactiveConnection(LettuceConnectionFactory.java:952)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:429)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory.getReactiveConnection(LettuceConnectionFactory.java:94)
at reactor.core.publisher.MonoSupplier.call(MonoSupplier.java:85)
at reactor.core.publisher.FluxSubscribeOnCallable$CallableSubscribeOnSubscription.run(FluxSubscribeOnCallable.java:225)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)
at java.util.concurrent.FutureTask.run(FutureTask.java)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to localhost:6379
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:78)
at io.lettuce.core.RedisConnectionException.create(RedisConnectionException.java:56)
at io.lettuce.core.AbstractRedisClient.getConnection(AbstractRedisClient.java:234)
at io.lettuce.core.RedisClient.connect(RedisClient.java:207)
at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.lambda$getConnection$1(StandaloneConnectionProvider.java:115)
at java.util.Optional.orElseGet(Optional.java:267)
at org.springframework.data.redis.connection.lettuce.StandaloneConnectionProvider.getConnection(StandaloneConnectionProvider.java:115)
at org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory$SharedConnection.getNativeConnection(LettuceConnectionFactory.java:1198)
... 15 common frames omitted

在网上搜了下解决方法, 发现都是提供的这一种方式:


@Component("redisHealthIndicator")
public class RedisHealthIndicator implements HealthIndicator {

@Override
   public Health health() {
       return Health.up().build();
   }    
}

结果我在看配置文件的时候, 发现另一个简单的方式: application.yml中加上


management:
 health:
   redis:
     enabled: false

就可以了~

springboot Actuator

通过Actuator可以深入的了解springboot应用程序的内部, 可以进行监控和度量一些配置信息。

这些特性可以通过rest端点、远程shell和jmx获得。

以下主要探讨rest端点的使用。

查看配置明细

1)/beans 上下文bean的情况

查看spring上下文中bean的情况, /beans会返回一个json文档,描述上下文里每个Bean的情况,类型、依赖注入

SpringBoot实现监控Actuator,关闭redis监测

2)/autoconfig 自动配置情况

positiveMatches指定的自动配置表示匹配成功的bean
negativeMatches对应的自动配置表示匹配失败的bean

3)/env 查看配置属性

包括:环境变量、JVM属性、命令行参数,以及application.properties或application.yml文件提供的属性

运行时度量

对运行时度量情况作一个快照,以此检查应用程序的健康状况。

1)/metrics 应用程序的度量值

SpringBoot实现监控Actuator,关闭redis监测

2)/trace 跟踪web请求的所有信息

包括请求方法、路径、时间戳,以及请求和响应的头信息。

3)/health 健康检查器

可以检查应用程序启动状况,以及相关依赖中间件的连接状态。

SpringBoot实现监控Actuator,关闭redis监测

来源:https://zzzgd.blog.csdn.net/article/details/106398042

标签:SpringBoot,监控,Actuator,redis
0
投稿

猜你喜欢

  • Java实现人脸识别登录、注册等功能(最新完整版)

    2022-09-25 00:20:13
  • Spring boot配置 swagger的示例代码

    2023-03-07 13:10:44
  • 基于C#实现乱码视频效果

    2022-01-25 14:29:56
  • Spring Boot中使用JDBC Templet的方法教程

    2021-09-06 06:04:38
  • Java深入探究Object类的方法

    2022-11-24 06:48:53
  • 深入浅析C#泛型类型

    2023-01-30 06:45:54
  • Android实现指针刻度转盘

    2022-06-08 07:41:42
  • 如何解决SpringBoot集成百度UEditor图片上传后直接访问404

    2022-03-03 19:27:13
  • Java爬虫范例之使用Htmlunit爬取学校教务网课程表信息

    2021-07-17 00:52:51
  • 详谈Java中的Object、T(泛型)、?区别

    2022-06-11 21:13:11
  • Unity计时器功能实现示例

    2022-03-08 20:02:39
  • Android编程实现google消息通知功能示例

    2023-02-02 20:00:27
  • java原装代码完成pdf在线预览和pdf打印及下载

    2022-06-18 03:23:21
  • Android开发之基于DialogFragment创建对话框的方法示例

    2023-10-03 21:17:12
  • java中复杂查询sql语句该怎么写

    2021-06-20 01:25:24
  • Android中Progress的简单实例

    2022-07-10 07:29:01
  • 智能指针与弱引用详解

    2023-05-10 04:45:56
  • C#中使用jieba.NET、WordCloudSharp制作词云图的步骤

    2022-02-10 19:38:49
  • Java用递归方法解决汉诺塔问题详解

    2022-11-23 03:11:40
  • C# 数独求解算法的实现

    2022-04-04 18:48:57
  • asp之家 软件编程 m.aspxhome.com