2016-04-28 3 views
1

У меня есть создать индикатор PostgreSQL здоровья, как это:Spring загрузочный механизм здоровья конечных точек

@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"}) 

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

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

, когда я ударил {URL}/здоровье Я вижу:

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

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

ответ

6

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

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

, чтобы увидеть полное содержание неаутентифицированного

Более подробной информации о том, что можно найти здесь: Production ready monitoring

2

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

Смежные вопросы