@Override public void notifyAfterCompleted() throws ServiceNotProvidedException, ModuleStartException {
        ses.scheduleAtFixedRate(() -> {
            StringBuilder unhealthyModules = new StringBuilder();
            score.set(Stream.ofAll(collector.collect())
                    .flatMap(metricFamily -> metricFamily.samples)
                    .filter(sample -> metricsCreator.isHealthCheckerMetrics(sample.name))
                    .peek(sample -> {
                        if (sample.value > 0.0) {
                            unhealthyModules.append(metricsCreator.extractModuleName(sample.name)).append(",");
                        }
                    })
                    .map(sample -> sample.value)
                    .collect(Collectors.summingDouble(Double::doubleValue)));
            details.set(unhealthyModules.toString());
            },
            2, config.getCheckIntervalSeconds(), TimeUnit.SECONDS);
    }
HealthCheckerProvider fetches health check metrics from telemetry module, then calculates health score and generates
details explains the score. External service or users can query health status by HealthCheckerService.
oap-server/server-health-checker/src/main/java/org/apache/skywalking/oap/server/health/checker/provider/HealthCheckerProvider.java