Spring boot actuator health endpoint

Thys Andries Michels picture Thys Andries Michels · Apr 28, 2016 · Viewed 11.5k times · Source

I have create a PostgreSQL health indicator like this:

@Component
public class PostgresHealthIndicator extends AbstractHealthIndicator {

    @Autowired
    DataSource postgresDataSource;

    public DataSourceHealthIndicator dbHealthIndicator() {
        DataSourceHealthIndicator indicator = new DataSourceHealthIndicator(postgresDataSource);
        return indicator;
    }

    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        Health h = dbHealthIndicator().health();
        Status status = h.getStatus();
        if (status != null && "DOWN".equals(status.getCode())) {
            builder.down();
        } else {
            builder.up();
        }
    }
}

In my Application.java I am scanning this package for this component:

@ComponentScan({"com.bp.health"})

In my application.properties I have the following set:

endpoints.health.sensitive=false
endpoints.health.id=health
endpoints.health.enabled=true

when I hit {url}/health I see:

{"status":"DOWN"}

what do I need to do to get the custom health indicator to show?

Answer

Janar picture Janar · Aug 29, 2016

You need to be authenticated to see all the details. Alternatively you could set

management.security.enabled=false
endpoints.health.sensitive=false

to see full content unauthenticated

More information about that can be found here: Production ready monitoring