mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Reduce redis health indicator info command result size
See gh-24208
This commit is contained in:
parent
12f2529be5
commit
99cc3f4bfc
@ -65,7 +65,7 @@ public class RedisHealthIndicator extends AbstractHealthIndicator {
|
||||
.withDetail("slots_fail", clusterInfo.getSlotsFail());
|
||||
}
|
||||
else {
|
||||
String version = connection.info().getProperty(REDIS_VERSION_PROPERTY);
|
||||
String version = connection.info("server").getProperty(REDIS_VERSION_PROPERTY);
|
||||
builder.up().withDetail("version", version);
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ public class RedisReactiveHealthIndicator extends AbstractReactiveHealthIndicato
|
||||
|
||||
private Mono<Health> doHealthCheck(Health.Builder builder, ReactiveRedisConnection connection) {
|
||||
boolean isClusterConnection = connection instanceof ReactiveRedisClusterConnection;
|
||||
return connection.serverCommands().info().map((info) -> up(builder, info, isClusterConnection))
|
||||
return connection.serverCommands().info("server").map((info) -> up(builder, info, isClusterConnection))
|
||||
.onErrorResume((ex) -> Mono.just(down(builder, ex)))
|
||||
.flatMap((health) -> connection.closeLater().thenReturn(health));
|
||||
}
|
||||
|
@ -32,6 +32,7 @@ import org.springframework.data.redis.connection.RedisConnection;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.Mockito.atLeastOnce;
|
||||
import static org.mockito.Mockito.mock;
|
||||
@ -51,7 +52,7 @@ class RedisHealthIndicatorTests {
|
||||
Properties info = new Properties();
|
||||
info.put("redis_version", "2.8.9");
|
||||
RedisConnection redisConnection = mock(RedisConnection.class);
|
||||
given(redisConnection.info()).willReturn(info);
|
||||
given(redisConnection.info("server")).willReturn(info);
|
||||
RedisHealthIndicator healthIndicator = createHealthIndicator(redisConnection);
|
||||
Health health = healthIndicator.health();
|
||||
assertThat(health.getStatus()).isEqualTo(Status.UP);
|
||||
@ -61,7 +62,7 @@ class RedisHealthIndicatorTests {
|
||||
@Test
|
||||
void redisIsDown() {
|
||||
RedisConnection redisConnection = mock(RedisConnection.class);
|
||||
given(redisConnection.info()).willThrow(new RedisConnectionFailureException("Connection failed"));
|
||||
given(redisConnection.info(anyString())).willThrow(new RedisConnectionFailureException("Connection failed"));
|
||||
RedisHealthIndicator healthIndicator = createHealthIndicator(redisConnection);
|
||||
Health health = healthIndicator.health();
|
||||
assertThat(health.getStatus()).isEqualTo(Status.DOWN);
|
||||
|
@ -33,6 +33,7 @@ import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
|
||||
import org.springframework.data.redis.connection.ReactiveServerCommands;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.BDDMockito.given;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@ -55,7 +56,7 @@ class RedisReactiveHealthIndicatorTests {
|
||||
ReactiveRedisConnection redisConnection = mock(ReactiveRedisConnection.class);
|
||||
given(redisConnection.closeLater()).willReturn(Mono.empty());
|
||||
ReactiveServerCommands commands = mock(ReactiveServerCommands.class);
|
||||
given(commands.info()).willReturn(Mono.just(info));
|
||||
given(commands.info("server")).willReturn(Mono.just(info));
|
||||
RedisReactiveHealthIndicator healthIndicator = createHealthIndicator(redisConnection, commands);
|
||||
Mono<Health> health = healthIndicator.health();
|
||||
StepVerifier.create(health).consumeNextWith((h) -> {
|
||||
@ -87,7 +88,7 @@ class RedisReactiveHealthIndicatorTests {
|
||||
@Test
|
||||
void redisCommandIsDown() {
|
||||
ReactiveServerCommands commands = mock(ReactiveServerCommands.class);
|
||||
given(commands.info()).willReturn(Mono.error(new RedisConnectionFailureException("Connection failed")));
|
||||
given(commands.info(anyString())).willReturn(Mono.error(new RedisConnectionFailureException("Connection failed")));
|
||||
ReactiveRedisConnection redisConnection = mock(ReactiveRedisConnection.class);
|
||||
given(redisConnection.closeLater()).willReturn(Mono.empty());
|
||||
RedisReactiveHealthIndicator healthIndicator = createHealthIndicator(redisConnection, commands);
|
||||
|
Loading…
Reference in New Issue
Block a user