2016-04-28 16 views
1

Ich habe einen Gesundheitsindikatoren wie diese PostgreSQL erstellen:Frühling Boot Aktor Gesundheit Endpunkt

@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 meinem Application.java mir das Scannen dieses Pakets für diese Komponente:

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

In meiner Anwendung. Eigenschaften ich den folgenden Satz haben:

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

, wenn ich getroffen {url}/Gesundheit ich sehe:

{ "status": "DOWN"}

, was muss ich tun, um die individuelle Gesundheit Anzeige zu zeigen, zu bekommen?

Antwort

6

Sie müssen authentifiziert werden, um alle Details zu sehen. Alternativ können Sie einstellen

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

vollen Inhalt unauthenticated

Weitere Informationen über das zu sehen ist hier zu finden: Production ready monitoring

2

Warum möchten Sie das alles tun? Dieser Code wird nicht einmal kompiliert und Spring Boot überprüft Ihre Datenquellen standardmäßig bereits. Wenn Sie den Status nur deshalb sehen, weil Sie nicht authentifiziert sind, überprüfen Sie diese Tabelle unter in the doc für weitere Details.

Verwandte Themen