org.springframework.boot.actuate.health.Status Java Examples

The following examples show how to use org.springframework.boot.actuate.health.Status. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source Project: ambari-logsearch   Author: apache   File: AbstractSolrHealthIndicator.java    License: Apache License 2.0 9 votes vote down vote up
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
  Status status = Status.DOWN;
  String errorDetails = null;
  if (getSolrTemplate() != null && getSolrTemplate().getSolrClient() != null) {
    try {
      SolrClient solrClient = getSolrTemplate().getSolrClient();
      SolrQuery q = new SolrQuery("*:*");
      q.setRows(0);
      QueryResponse response = solrClient.query(q);
      if (response.getStatus() == 0) {
        status = Status.UP;
        if (response.getResults() != null) {
          builder.withDetail("numDocs", response.getResults().getNumFound());
        }
      }
    } catch (Exception e) {
      errorDetails = e.getMessage();
    }
  }
  builder.status(status);
  if (errorDetails != null) {
    builder.withDetail("error", errorDetails);
  }
}
 
Example #2
Source Project: sofa-dashboard-client   Author: sofastack   File: SofaDashboardContextRefreshedListener.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
    ApplicationContext context = event.getApplicationContext();
    ReadinessCheckListener readinessCheckListener = context
        .getBean(ReadinessCheckListener.class);
    AppPublisher publisher = context.getBean(AppPublisher.class);

    try {
        String status = readinessCheckListener.getHealthCheckerStatus() ? Status.UP.toString()
            : Status.DOWN.toString();
        publisher.getApplication().setAppState(status);
        publisher.start();
        publisher.register();
    } catch (Exception e) {
        LOGGER.info("sofa dashboard client register failed.", e);
    }
}
 
Example #3
Source Project: spring-cloud-commons   Author: spring-cloud   File: ReactiveDiscoveryClientHealthIndicator.java    License: Apache License 2.0 6 votes vote down vote up
private Mono<Health> doHealthCheck() {
	// @formatter:off
	return Mono.justOrEmpty(this.discoveryClient)
			.flatMapMany(ReactiveDiscoveryClient::getServices)
			.collectList()
			.defaultIfEmpty(emptyList())
			.map(services -> {
				ReactiveDiscoveryClient client = this.discoveryClient;
				String description = (this.properties.isIncludeDescription())
						? client.description() : "";
				return Health.status(new Status("UP", description))
						.withDetail("services", services).build();
			})
			.onErrorResume(exception -> {
				this.log.error("Error", exception);
				return Mono.just(Health.down().withException(exception).build());
			});
	// @formatter:on
}
 
Example #4
Source Project: spring-cloud-vault   Author: spring-cloud   File: VaultReactiveHealthIndicatorIntegrationTests.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void shouldReturnHealthState() {

	ReactiveVaultTemplate vaultTemplate = new ReactiveVaultTemplate(
			TestRestTemplateFactory.TEST_VAULT_ENDPOINT,
			ClientHttpConnectorFactory.create(new ClientOptions(),
					Settings.createSslConfiguration()),
			() -> Mono.just(Settings.token()));

	VaultReactiveHealthIndicator healthIndicator = new VaultReactiveHealthIndicator(
			vaultTemplate);

	healthIndicator.doHealthCheck(Health.up()).as(StepVerifier::create)
			.consumeNextWith(actual -> {
				assertThat(actual.getStatus()).isEqualTo(Status.UP);
			}).verifyComplete();
}
 
Example #5
Source Project: microservices-dashboard   Author: ordina-jworks   File: ApplicationInstanceHealthWatcher.java    License: Apache License 2.0 6 votes vote down vote up
private void retrieveHealthData(ApplicationInstance instance) {
	instance.getActuatorEndpoint("health").ifPresent(link -> {
		logger.debug("Retrieving [HEALTH] data for {}", instance.getId());
		this.webClient.get().uri(link.getHref()).retrieve().bodyToMono(HealthWrapper.class)
				.defaultIfEmpty(new HealthWrapper(Status.UNKNOWN, new HashMap<>()))
				.map(HealthWrapper::getHealth)
				.doOnError(exception -> {
					logger.debug("Could not retrieve health information for [{}]", link.getHref(), exception);
					this.publisher.publishEvent(new ApplicationInstanceHealthDataRetrievalFailed(instance));
				})
				.subscribe(healthInfo -> {
					logger.debug("Retrieved health information for application instance [{}]", instance.getId());
					this.publisher.publishEvent(new ApplicationInstanceHealthDataRetrieved(instance, healthInfo));
				});
	});
}
 
Example #6
@Test
public void mockCacheServerHealthCheckWithServerLoadDetails() {

	Health health = this.healthIndicator.health();

	assertThat(health).isNotNull();
	assertThat(health.getStatus()).isEqualTo(Status.UP);

	Map<String, Object> healthDetails = health.getDetails();

	assertThat(healthDetails).isNotNull();
	assertThat(healthDetails).isNotEmpty();
	assertThat(healthDetails).containsEntry("geode.cache.server.count", 1);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.port", 48484);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.load.connection-load", 0.65f);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.load.load-per-connection", 0.35f);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.load.load-per-subscription-connection", 0.75f);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.load.subscription-connection-load", 0.55f);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.metrics.client-count", 21);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.metrics.max-connection-count", 800);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.metrics.open-connection-count", 400);
	assertThat(healthDetails).containsEntry("geode.cache.server.0.metrics.subscription-connection-count", 200);
}
 
Example #7
Source Project: spring-cloud-stream-binder-kafka   Author: spring-cloud   File: KafkaBinderHealthIndicatorTest.java    License: Apache License 2.0 6 votes vote down vote up
@Test
public void consumerCreationFailsFirstTime() {
	final List<PartitionInfo> partitions = partitions(new Node(0, null, 0));
	topicsInUse.put(TEST_TOPIC, new KafkaMessageChannelBinder.TopicInformation(
			"foo-healthIndicator", partitions, false));

	org.mockito.BDDMockito.given(consumerFactory.createConsumer())
			.willThrow(KafkaException.class).willReturn(consumer);

	Health health = indicator.health();
	assertThat(health.getStatus()).isEqualTo(Status.DOWN);

	health = indicator.health();
	assertThat(health.getStatus()).isEqualTo(Status.UP);

	org.mockito.Mockito.verify(this.consumerFactory, Mockito.times(2))
			.createConsumer();
}
 
Example #8
Source Project: microservices-dashboard   Author: ordina-jworks   File: ApplicationInstanceHealthWatcherTests.java    License: Apache License 2.0 6 votes vote down vote up
private void assertHealthInfoRetrievalSucceeded(List<ApplicationInstance> applicationInstances) {
	String logOutput = this.outputCapture.toString();
	assertThat(logOutput).contains("Retrieving [HEALTH] data for all application instances");
	applicationInstances.forEach((applicationInstance) -> {
		assertThat(logOutput).contains(String.format("Retrieving [HEALTH] data for %s", applicationInstance.getId()));
		assertThat(logOutput).contains(String.format("Retrieved health information for application instance [%s]",
				applicationInstance.getId()));
	});

	verify(this.applicationEventPublisher, times(applicationInstances.size()))
			.publishEvent(this.applicationEventArgumentCaptor.capture());
	verifyNoMoreInteractions(this.applicationEventPublisher);

	List<ApplicationInstanceHealthDataRetrieved> healthInfoRetrievals =
			(List) this.applicationEventArgumentCaptor.getAllValues();

	healthInfoRetrievals.forEach(healthInfoRetrieved -> {
		ApplicationInstance instance = (ApplicationInstance) healthInfoRetrieved.getSource();

		assertThat(healthInfoRetrieved).isNotNull();
		assertThat(healthInfoRetrieved.getHealth()).isNotNull();
		assertThat(healthInfoRetrieved.getHealth().getStatus()).isEqualTo(Status.UP);
		assertThat(applicationInstances).contains(instance);
	});
}
 
Example #9
@Test
public void whenAutoConfigured_thenHazelcastJetUp() {
    this.contextRunner.run((context) -> {
        assertThat(context).hasSingleBean(JetInstance.class).hasSingleBean(HazelcastJetHealthIndicator.class);
        JetInstance jet = context.getBean(JetInstance.class);
        Health health = context.getBean(HazelcastJetHealthIndicator.class).health();
        assertThat(health.getStatus()).isEqualTo(Status.UP);
        assertThat(health.getDetails())
                .containsOnlyKeys("name", "uuid")
                .containsEntry("name", jet.getName())
                .containsEntry("uuid", jet.getHazelcastInstance().getLocalEndpoint().getUuid().toString());
    });
}
 
Example #10
@Test
public void whenShutdown_thenHazelcastJetDown() {
    this.contextRunner.run((context) -> {
        context.getBean(JetInstance.class).shutdown();
        assertThat(context).hasSingleBean(HazelcastJetHealthIndicator.class);
        Health health = context.getBean(HazelcastJetHealthIndicator.class).health();
        assertThat(health.getStatus()).isEqualTo(Status.DOWN);
    });
}
 
Example #11
Source Project: microservices-dashboard   Author: ordina-jworks   File: UpdateApplicationInstanceHealth.java    License: Apache License 2.0 5 votes vote down vote up
public UpdateApplicationInstanceHealth(String id, Status healthStatus) {
	Assert.notNull(id, "id must not be null!");
	Assert.notNull(healthStatus, "healthStatus must not be null!");

	this.id = id;
	this.healthStatus = healthStatus;
}
 
Example #12
Source Project: hazelcast-jet-contrib   Author: hazelcast   File: HazelcastJetHealthIndicatorTests.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void whenIsRunningFalse_thenHazelcastJetDown() {
    mockJet(false);

    Health health = new HazelcastJetHealthIndicator(jet).health();
    assertThat(health.getStatus()).isEqualTo(Status.DOWN);
    assertDetails(health);
}
 
Example #13
@Test
public void healthIndicatorUpMultipleCallsTest() throws Exception {
	try (ConfigurableApplicationContext context = singleStream("ApplicationHealthTest-xyz")) {
		int callsToPerform = 5;
		for (int i = 0; i < callsToPerform; i++) {
			receive(context,
					Lists.newArrayList(new ProducerRecord<>("in", "{\"id\":\"123\"}"),
							new ProducerRecord<>("in", "{\"id\":\"123\"}")),
					Status.UP, "out");
		}
	}
}
 
Example #14
Source Project: microservices-dashboard   Author: ordina-jworks   File: ApplicationInstanceHealthWatcherTests.java    License: Apache License 2.0 5 votes vote down vote up
private void assertHealthInfoRetrievalSucceeded(ApplicationInstance instance) {
	verify(this.applicationEventPublisher).publishEvent(this.applicationEventArgumentCaptor.capture());
	verifyNoMoreInteractions(this.applicationEventPublisher);

	assertThat(this.outputCapture.toString())
			.contains(String.format("Retrieved health information for application instance [%s]", instance.getId()));

	ApplicationInstanceHealthDataRetrieved healthInfoRetrieved =
			(ApplicationInstanceHealthDataRetrieved) this.applicationEventArgumentCaptor.getValue();
	assertThat(healthInfoRetrieved).isNotNull();
	assertThat(healthInfoRetrieved.getHealth()).isNotNull();
	assertThat(healthInfoRetrieved.getHealth().getStatus()).isEqualTo(Status.UP);
	assertThat(healthInfoRetrieved.getHealth().getDetails()).isNotNull();
	assertThat(healthInfoRetrieved.getSource()).isEqualTo(instance);
}
 
Example #15
Source Project: spring-cloud-config   Author: spring-cloud   File: ConfigServerHealthIndicatorTests.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void defaultStatusWorks() {
	when(this.repository.findOne(anyString(), anyString(), Mockito.<String>isNull(),
			anyBoolean())).thenReturn(this.environment);
	assertThat(this.indicator.health().getStatus()).as("wrong default status")
			.isEqualTo(Status.UP);
}
 
Example #16
Source Project: shop   Author: lrwinx   File: MyHealthCheckHandler.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public InstanceInfo.InstanceStatus getStatus(InstanceInfo.InstanceStatus instanceStatus) {
    Status status = myHealthIndicator.health().getStatus();
    if(Status.UP.equals(status)){
        return InstanceInfo.InstanceStatus.UP;
    }

    return InstanceInfo.InstanceStatus.DOWN;

}
 
Example #17
@Test
public void testHealthCheckOther() {
    ClusterHealth clusterHealth = createClusterHealth("other");
    when(clusterService.checkClusterHealth(DEFAULT_CLUSTER_NAME)).thenReturn(clusterHealth);

    Health health = indicator.health();
    assertEquals(Status.DOWN, health.getStatus());
}
 
Example #18
Source Project: portal-de-servicos   Author: servicosgovbr   File: ElasticSearchHealthIndicatorTest.java    License: MIT License 5 votes vote down vote up
@Test
public void deveRetornarDownQuandoClusterNãoTemConexão() throws Exception {
    given(admin.cluster().health(anyObject()).actionGet().getStatus()).willReturn(RED);

    assertThat(indicator.health().getStatus(), is(Status.DOWN));
    assertThat(indicator.health().getDetails().get("status"), is(RED));
}
 
Example #19
Source Project: spring-cloud-commons   Author: spring-cloud   File: ReactiveDiscoveryClientHealthIndicatorTests.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void shouldReturnUpStatusWithoutServices() {
	when(discoveryClient.description()).thenReturn("Mocked Service Discovery Client");
	when(discoveryClient.getServices()).thenReturn(Flux.empty());
	Health expectedHealth = Health.status(new Status(Status.UP.getCode(), ""))
			.withDetail("services", emptyList()).build();

	indicator.onApplicationEvent(new InstanceRegisteredEvent<>(this, null));
	Mono<Health> health = indicator.health();

	assertThat(indicator.getName()).isEqualTo("Mocked Service Discovery Client");
	StepVerifier.create(health).expectNext(expectedHealth).expectComplete().verify();
}
 
Example #20
Source Project: spring-cloud-vault   Author: spring-cloud   File: VaultHealthIndicatorUnitTests.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void shouldReportSealedService() {

	when(this.healthResponse.isInitialized()).thenReturn(true);
	when(this.healthResponse.isSealed()).thenReturn(true);

	Health health = this.healthIndicator.health();

	assertThat(health.getStatus()).isEqualTo(Status.DOWN);
	assertThat(health.getDetails()).containsEntry("state", "Vault sealed");
}
 
Example #21
Source Project: api-layer   Author: zowe   File: GatewayHealthIndicatorTest.java    License: Eclipse Public License 2.0 5 votes vote down vote up
@Test
public void testStatusIsUpWhenCatalogAndDiscoveryAreAvailable() {
    DiscoveryClient discoveryClient = mock(DiscoveryClient.class);
    when(discoveryClient.getInstances(CoreService.API_CATALOG.getServiceId())).thenReturn(
        Collections.singletonList(new DefaultServiceInstance(CoreService.API_CATALOG.getServiceId(), "host", 10014, true)));
    when(discoveryClient.getInstances(CoreService.DISCOVERY.getServiceId())).thenReturn(
        Collections.singletonList(new DefaultServiceInstance(CoreService.DISCOVERY.getServiceId(), "host", 10011, true)));
    when(discoveryClient.getInstances(ZOSMF)).thenReturn(
        Collections.singletonList(new DefaultServiceInstance(ZOSMF, "host", 10050, true)));

    GatewayHealthIndicator gatewayHealthIndicator = new GatewayHealthIndicator(discoveryClient, authConfigurationProperties);
    Health.Builder builder = new Health.Builder();
    gatewayHealthIndicator.doHealthCheck(builder);
    assertEquals(Status.UP, builder.build().getStatus());
}
 
Example #22
Source Project: api-layer   Author: zowe   File: VirtualService.java    License: Eclipse Public License 2.0 5 votes vote down vote up
/**
 * To start tomcat and register service
 *
 * @return this instance to next command
 * @throws IOException        problem with socket
 * @throws LifecycleException Tomcat exception
 */
public VirtualService start() throws IOException, LifecycleException {
    // start Tomcat to get listening port
    tomcat.start();
    instanceId = InetAddress.getLocalHost().getHostName() + ":" + serviceId + ":" + getPort();

    // register into discovery service and start heart beating
    register(Status.UP.toString());
    healthService = new HealthService(renewalIntervalInSecs);

    started = true;

    return this;
}
 
Example #23
Source Project: portal-de-servicos   Author: servicosgovbr   File: PortalDeServicosIndexHealthIndicatorTest.java    License: MIT License 5 votes vote down vote up
@Test
public void retornaDownParaExcecoes() throws Exception {
    given(es.indexExists(PORTAL_DE_SERVICOS_INDEX)).willThrow(new RuntimeException("boom"));

    Health health = indicator.health();

    assertThat(health.getStatus(), is(Status.DOWN));
    assertThat(health.getDetails().get(PORTAL_DE_SERVICOS_INDEX), is("exception"));
    assertThat(health.getDetails().get("error"), is("java.lang.RuntimeException: boom"));
}
 
Example #24
Source Project: api-layer   Author: zowe   File: VirtualService.java    License: Eclipse Public License 2.0 5 votes vote down vote up
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
    resp.setStatus(HttpStatus.SC_OK);
    resp.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);
    final Status status = healthService == null ? Status.UNKNOWN : healthService.getStatus();
    resp.getWriter().print("{\"status\":\"" + status + "\"}");
    resp.getWriter().close();
}
 
Example #25
Source Project: tutorials   Author: eugenp   File: HealthCheckUnitTest.java    License: MIT License 5 votes vote down vote up
@Test
public void whenCheckMethodReturnsOtherThanZero_thenHealthMethodReturnsStatusDOWN() {
    HealthCheck healthCheck = Mockito.spy(new HealthCheck());
    when(healthCheck.check()).thenReturn(-1);
    Health health = healthCheck.health();

    assertThat(health.getStatus(), is(Status.DOWN));
}
 
Example #26
Source Project: api-layer   Author: zowe   File: ApiCatalogHealthIndicatorTest.java    License: Eclipse Public License 2.0 5 votes vote down vote up
@Test
public void testStatusIsUpWhenGatewayIsAvailable() {
    when(discoveryClient.getInstances(CoreService.GATEWAY.getServiceId())).thenReturn(
        Collections.singletonList(
            new DefaultServiceInstance(CoreService.GATEWAY.getServiceId(), "host", 10010, true)));

    apiCatalogHealthIndicator.doHealthCheck(builder);

    assertEquals(Status.UP, builder.build().getStatus());
}
 
Example #27
Source Project: api-layer   Author: zowe   File: ApiCatalogHealthIndicatorTest.java    License: Eclipse Public License 2.0 5 votes vote down vote up
@Test
public void testStatusIsDownWhenGatewayIsNotAvailable() {
    when(discoveryClient.getInstances(CoreService.GATEWAY.getServiceId())).thenReturn(Collections.emptyList());

    apiCatalogHealthIndicator.doHealthCheck(builder);

    assertEquals(Status.DOWN, builder.build().getStatus());
}
 
Example #28
Source Project: portal-de-servicos   Author: servicosgovbr   File: ElasticSearchHealthIndicatorTest.java    License: MIT License 5 votes vote down vote up
@Test
public void deveRetornarDownQuandoClusterTemPoucosNodos() throws Exception {
    given(admin.cluster().health(anyObject()).actionGet().getStatus()).willReturn(YELLOW);

    assertThat(indicator.health().getStatus(), is(Status.DOWN));
    assertThat(indicator.health().getDetails().get("status"), is(YELLOW));
}
 
Example #29
Source Project: spring-cloud-alibaba   Author: alibaba   File: SentinelHealthIndicatorTests.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testSentinelNotEnabled() {
	when(sentinelProperties.isEnabled()).thenReturn(false);

	Health health = sentinelHealthIndicator.health();

	assertThat(health.getStatus()).isEqualTo(Status.UP);
	assertThat(health.getDetails().get("enabled")).isEqualTo(false);
}
 
Example #30
Source Project: spring-cloud-alibaba   Author: alibaba   File: SentinelHealthIndicatorTests.java    License: Apache License 2.0 5 votes vote down vote up
@Test
public void testSentinelDashboardConfiguredFailed() throws Exception {
	when(sentinelProperties.isEnabled()).thenReturn(true);
	SentinelConfig.setConfig(TransportConfig.CONSOLE_SERVER, "localhost:8080");
	when(heartbeatSender.sendHeartbeat()).thenReturn(false);

	Health health = sentinelHealthIndicator.health();

	assertThat(health.getStatus()).isEqualTo(Status.DOWN);
	assertThat(health.getDetails().get("dashboard")).isEqualTo(
			new Status(Status.DOWN.getCode(), "localhost:8080 can't be connected"));
}