Конечная точка исправности привода пружинного башмака

Я создал индикатор работоспособности PostgreSQL следующим образом:

@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();
        }
    }
}

В моем Application.java я сканирую этот пакет для этого компонента:

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

В моем application.properties у меня есть следующий набор:

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

когда я нажимаю {url}/health, я вижу:

{ "Статус":"DOWN"}

Что мне нужно сделать, чтобы показать пользовательский индикатор работоспособности?

2 ответа

Решение

Вам необходимо пройти проверку подлинности, чтобы увидеть все детали. В качестве альтернативы вы можете установить

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

чтобы увидеть полный контент без проверки подлинности

Подробнее об этом можно узнать здесь: Мониторинг готовности производства

Зачем тебе все это делать? Этот код даже не компилируется, и Spring Boot уже проверяет ваши источники данных по умолчанию. Если вы видите только статус, потому что вы не прошли проверку подлинности, проверьте эту таблицу в документе для получения более подробной информации.

Другие вопросы по тегам