Search in sources :

Example 21 with HealthEndpointGroup

use of org.springframework.boot.actuate.health.HealthEndpointGroup in project spring-boot by spring-projects.

the class AutoConfiguredHealthEndpointGroupsTests method createWhenHasStatusAggregatorPropertyReturnsInstanceWithPropertyUsedForAllGroups.

@Test
void createWhenHasStatusAggregatorPropertyReturnsInstanceWithPropertyUsedForAllGroups() {
    this.contextRunner.withPropertyValues("management.endpoint.health.status.order=up,down", "management.endpoint.health.group.a.include=*").run((context) -> {
        HealthEndpointGroups groups = context.getBean(HealthEndpointGroups.class);
        HealthEndpointGroup primary = groups.getPrimary();
        HealthEndpointGroup groupA = groups.get("a");
        assertThat(primary.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN)).isEqualTo(Status.UP);
        assertThat(groupA.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN)).isEqualTo(Status.UP);
    });
}
Also used : HealthEndpointGroups(org.springframework.boot.actuate.health.HealthEndpointGroups) HealthEndpointGroup(org.springframework.boot.actuate.health.HealthEndpointGroup) Test(org.junit.jupiter.api.Test)

Example 22 with HealthEndpointGroup

use of org.springframework.boot.actuate.health.HealthEndpointGroup in project spring-boot by spring-projects.

the class AutoConfiguredHealthEndpointGroupsTests method createWhenNoDefinedBeansAdaptsProperties.

@Test
void createWhenNoDefinedBeansAdaptsProperties() {
    this.contextRunner.withPropertyValues("management.endpoint.health.show-components=always", "management.endpoint.health.show-details=never", "management.endpoint.health.status.order=up,down", "management.endpoint.health.status.http-mapping.down=200").run((context) -> {
        HealthEndpointGroups groups = context.getBean(HealthEndpointGroups.class);
        HealthEndpointGroup primary = groups.getPrimary();
        assertThat(primary.showComponents(SecurityContext.NONE)).isTrue();
        assertThat(primary.showDetails(SecurityContext.NONE)).isFalse();
        assertThat(primary.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN)).isEqualTo(Status.UP);
        assertThat(primary.getHttpCodeStatusMapper().getStatusCode(Status.DOWN)).isEqualTo(200);
    });
}
Also used : HealthEndpointGroups(org.springframework.boot.actuate.health.HealthEndpointGroups) HealthEndpointGroup(org.springframework.boot.actuate.health.HealthEndpointGroup) Test(org.junit.jupiter.api.Test)

Example 23 with HealthEndpointGroup

use of org.springframework.boot.actuate.health.HealthEndpointGroup in project spring-boot by spring-projects.

the class AutoConfiguredHealthEndpointGroupsTests method createWhenHasStatusAggregatorBeanReturnsInstanceWithAggregatorUsedForAllGroups.

@Test
void createWhenHasStatusAggregatorBeanReturnsInstanceWithAggregatorUsedForAllGroups() {
    this.contextRunner.withUserConfiguration(CustomStatusAggregatorConfiguration.class).withPropertyValues("management.endpoint.health.status.order=up,down", "management.endpoint.health.group.a.include=*").run((context) -> {
        HealthEndpointGroups groups = context.getBean(HealthEndpointGroups.class);
        HealthEndpointGroup primary = groups.getPrimary();
        HealthEndpointGroup groupA = groups.get("a");
        assertThat(primary.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN, Status.UNKNOWN)).isEqualTo(Status.UNKNOWN);
        assertThat(groupA.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN, Status.UNKNOWN)).isEqualTo(Status.UNKNOWN);
    });
}
Also used : HealthEndpointGroups(org.springframework.boot.actuate.health.HealthEndpointGroups) HealthEndpointGroup(org.springframework.boot.actuate.health.HealthEndpointGroup) Test(org.junit.jupiter.api.Test)

Example 24 with HealthEndpointGroup

use of org.springframework.boot.actuate.health.HealthEndpointGroup in project spring-boot by spring-projects.

the class AutoConfiguredHealthEndpointGroupsTests method createWhenHasStatusAggregatorBeanAndGroupSpecificPropertyReturnsInstanceThatUsesBeanOnlyForUnconfiguredGroups.

@Test
void createWhenHasStatusAggregatorBeanAndGroupSpecificPropertyReturnsInstanceThatUsesBeanOnlyForUnconfiguredGroups() {
    this.contextRunner.withUserConfiguration(CustomStatusAggregatorConfiguration.class).withPropertyValues("management.endpoint.health.group.a.include=*", "management.endpoint.health.group.a.status.order=up,down", "management.endpoint.health.group.b.include=*").run((context) -> {
        HealthEndpointGroups groups = context.getBean(HealthEndpointGroups.class);
        HealthEndpointGroup primary = groups.getPrimary();
        HealthEndpointGroup groupA = groups.get("a");
        HealthEndpointGroup groupB = groups.get("b");
        assertThat(primary.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN, Status.UNKNOWN)).isEqualTo(Status.UNKNOWN);
        assertThat(groupA.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN, Status.UNKNOWN)).isEqualTo(Status.UP);
        assertThat(groupB.getStatusAggregator().getAggregateStatus(Status.UP, Status.DOWN, Status.UNKNOWN)).isEqualTo(Status.UNKNOWN);
    });
}
Also used : HealthEndpointGroups(org.springframework.boot.actuate.health.HealthEndpointGroups) HealthEndpointGroup(org.springframework.boot.actuate.health.HealthEndpointGroup) Test(org.junit.jupiter.api.Test)

Example 25 with HealthEndpointGroup

use of org.springframework.boot.actuate.health.HealthEndpointGroup in project spring-boot by spring-projects.

the class AdditionalHealthEndpointPathsWebFluxHandlerMapping method initHandlerMethods.

@Override
protected void initHandlerMethods() {
    for (WebOperation operation : this.endpoint.getOperations()) {
        WebOperationRequestPredicate predicate = operation.getRequestPredicate();
        String matchAllRemainingPathSegmentsVariable = predicate.getMatchAllRemainingPathSegmentsVariable();
        if (matchAllRemainingPathSegmentsVariable != null) {
            for (HealthEndpointGroup group : this.groups) {
                AdditionalHealthEndpointPath additionalPath = group.getAdditionalPath();
                if (additionalPath != null) {
                    RequestMappingInfo requestMappingInfo = getRequestMappingInfo(operation, additionalPath.getValue());
                    registerReadMapping(requestMappingInfo, this.endpoint, operation);
                }
            }
        }
    }
}
Also used : WebOperation(org.springframework.boot.actuate.endpoint.web.WebOperation) WebOperationRequestPredicate(org.springframework.boot.actuate.endpoint.web.WebOperationRequestPredicate) AdditionalHealthEndpointPath(org.springframework.boot.actuate.health.AdditionalHealthEndpointPath) RequestMappingInfo(org.springframework.web.reactive.result.method.RequestMappingInfo) HealthEndpointGroup(org.springframework.boot.actuate.health.HealthEndpointGroup)

Aggregations

HealthEndpointGroup (org.springframework.boot.actuate.health.HealthEndpointGroup)25 Test (org.junit.jupiter.api.Test)22 HealthEndpointGroups (org.springframework.boot.actuate.health.HealthEndpointGroups)22 AdditionalHealthEndpointPath (org.springframework.boot.actuate.health.AdditionalHealthEndpointPath)3 WebOperation (org.springframework.boot.actuate.endpoint.web.WebOperation)2 WebOperationRequestPredicate (org.springframework.boot.actuate.endpoint.web.WebOperationRequestPredicate)2 LinkedHashMap (java.util.LinkedHashMap)1 Show (org.springframework.boot.actuate.autoconfigure.health.HealthProperties.Show)1 Status (org.springframework.boot.actuate.autoconfigure.health.HealthProperties.Status)1 HttpCodeStatusMapper (org.springframework.boot.actuate.health.HttpCodeStatusMapper)1 SimpleHttpCodeStatusMapper (org.springframework.boot.actuate.health.SimpleHttpCodeStatusMapper)1 SimpleStatusAggregator (org.springframework.boot.actuate.health.SimpleStatusAggregator)1 StatusAggregator (org.springframework.boot.actuate.health.StatusAggregator)1 RequestMappingInfo (org.springframework.web.reactive.result.method.RequestMappingInfo)1