10.8. 사용자 정의 상태 점검 추가
추가 사용자 지정 heath 검사를 제공하여 Karaf 서버가 요청을 처리할 준비가 되기 전에 사용자 트래픽을 수신하지 못하도록 할 수 있습니다. 사용자 정의 상태 점검을 활성화하려면 io.fabric8.karaf.checks.HealthChecker 또는 io.fabric8.karaf.checks.ReadinessChecker 인터페이스를 구현하고 해당 오브젝트를 OSGi 레지스트리에 등록해야 합니다.
절차
다음 mvn 종속성을 프로젝트
pom.xml파일에 추가합니다.pom.xml
<dependency> <groupId>io.fabric8</groupId> <artifactId>fabric8-karaf-checks</artifactId> </dependency>
참고OSGi 레지스트리에서 오브젝트를 생성하고 등록하는 가장 간단한 방법은 SCR을 사용하는 것입니다.
예제
다음과 같이 상태 점검을 수행하여 사용 가능한 디스크 공간이 있는지 확인하는 예는 다음과 같습니다.
import io.fabric8.karaf.checks.*;
import org.apache.felix.scr.annotations.*;
import org.apache.commons.io.FileSystemUtils;
import java.util.Collections;
import java.util.List;
@Component(
name = "example.DiskChecker",
immediate = true,
enabled = true,
policy = ConfigurationPolicy.IGNORE,
createPid = false
)
@Service({HealthChecker.class, ReadinessChecker.class})
public class DiskChecker implements HealthChecker, ReadinessChecker {
public List<Check> getFailingReadinessChecks() {
// lets just use the same checks for both readiness and health
return getFailingHeathChecks();
}
public List<Check> getFailingHealthChecks() {
long free = FileSystemUtils.freeSpaceKb("/");
if (free < 1024 * 500) {
return Collections.singletonList(new Check("disk-space-low", "Only " + free + "kb of disk space left."));
}
return Collections.emptyList();
}
}