To upgrade gradle version to 7.1
$ ./gradlew wrapper --gradle-version=7.1 --distribution-type=bin
This website collects cookies to deliver better user experience
$ ./gradlew wrapper --gradle-version=7.1 --distribution-type=bin
$ ./gradlew bootRun
package com.psideris.springhealthaggregatordemo;
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.stereotype.Component;
import java.util.Random;
@Component
public class NumberAppHealthIndicator extends AbstractHealthIndicator {
@Override
protected void doHealthCheck(Health.Builder builder) {
int number = getRandomNumber();
if (number > 5) {
builder.up().build();
} else {
builder.down().withDetail("error", "Number was less than 5").build();
}
}
private int getRandomNumber() {
return new Random().ints(1, 10).findFirst().orElseThrow(() -> new RuntimeException("Failed to generate random number"));
}
}
package com.psideris.springhealthaggregatordemo;
import org.springframework.boot.actuate.health.Status;
import org.springframework.boot.actuate.health.StatusAggregator;
import org.springframework.stereotype.Component;
import java.util.Set;
@Component
public class AppHealthAggregator implements StatusAggregator {
@Override
public Status getAggregateStatus(Set<Status> statuses) {
boolean statusUp = statuses.stream().allMatch(s -> s.equals(Status.UP));
return statusUp ? Status.UP : Status.DOWN;
}
}
// application.yml
management:
endpoint:
health:
show-details: always
// application.properties
management.endpoint.health.show-details=always
// application.yml
management:
endpoints:
web:
base-path: /api
path-mapping:
health: health-status
// application.properties
management.endpoints.web.base-path=/api
management.endpoints.web.path-mapping.health=health-status
@Component("numberService")
public class NumberAppHealthIndicator extends AbstractHealthIndicator {
...
}