code

Springboot 스프링 액추에이터 상태 끝점에서 Mongo 상태 표시기를 비활성화할 수 있습니까?

starcafe 2023. 6. 27. 22:25
반응형

Springboot 스프링 액추에이터 상태 끝점에서 Mongo 상태 표시기를 비활성화할 수 있습니까?

제가 연구하고 있는 스프링부트 프로젝트에는 spring-data-mongodb에 대한 과도적인 의존성이 있습니다.따라서 프로젝트에서 실제로 mongodb를 사용하지는 않지만 MongoHealthIndicator가 자동으로 활성화되는 것 같습니다.액추에이터 상태 끝점을 비활성화하지 않고 이 상태 표시기를 비활성화할 수 있습니까?제가 찾은 해결책은 종속성을 제외하는 것입니다.그런데 Mongo Health Indicator의 이 특정 비활성화를 할 수 있는지 궁금합니다.

시작:

http://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html

# HEALTH INDICATORS (previously health.*)
...
management.health.mongo.enabled=true
...

상태 표시기를 비활성화하려면 이 값을 false로 설정할 수 있어야 합니다.org.springframework.boot.actuate에서.자동 구성상태 표시기자동 구성.자바

@Configuration
@ConditionalOnBean(MongoTemplate.class)
@ConditionalOnProperty(prefix = "management.health.mongo", name = "enabled", matchIfMissing = true)
public static class MongoHealthIndicatorConfiguration {

application.properties에서 사용해 보십시오.

management.health.mongo.enabled=false

application.properties

관리.health.mongo.enabled=false
endpoints.mongo.enabled=true

MongoDBHealthCheckEndPoint.java

@ConfigurationProperties(prefix = "endpoints.mongo", ignoreUnknownFields = true)
@Component
public class MongoDBHealthCheckEndPoint extends AbstractEndpoint<Map<String, String>> 
{

    @Inject
    MongoTemplate mongoTemplate;


    private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

    private static final Map<String, String> UP = new HashMap<String, String>() {{
        put("mongo.status", "UP");
    }};

    private static final Map<String, String> DOWN = new HashMap<String, String>() {{
        put("mongo.status", "DOWN");
    }};


    public MongoDBHealthCheckEndPoint() {
        super("mongo", false);
    }

    public MongoDBHealthCheckEndPoint(Map<String, ? extends Object> mongo) {
        super("mongo", false);
    }

    public Map<String, String> invoke() {
        try {
            return (new MongoHealthIndicator(mongoTemplate).health().getStatus().equals(Status.UP)) ? UP : DOWN;
        } catch (Exception e) {
            log.error("mongo database is down", e);
            return DOWN;
        }
    }
}

언급URL : https://stackoverflow.com/questions/30762906/is-it-possible-to-deactivate-mongohealthindicator-in-the-springboot-spring-actua

반응형