@Override
    public void watch(HealthCheckRequest request, StreamObserver<HealthCheckResponse> responseObserver) {
        ServiceRequestContext.current().clearRequestTimeout();
        final String service = firstNonNull(request.getService(), EMPTY_SERVICE);
        synchronized (watchers) {
            final ServingStatus status = checkServingStatus(service);
            if (status == ServingStatus.SERVICE_UNKNOWN) {
                responseObserver.onError(getNotFoundStatus(service));
                return;
            }
            final HealthCheckResponse response = getHealthCheckResponse(status);
            responseObserver.onNext(response);
            watchers.put(service, responseObserver);
        }
        ((ServerCallStreamObserver<HealthCheckResponse>) responseObserver).setOnCancelHandler(() -> {
            synchronized (watchers) {
                watchers.get(service).remove(responseObserver);
            }
        });
    }
Returns a new builder which builds a new {@link GrpcHealthCheckService}.
grpc/src/main/java/com/linecorp/armeria/server/grpc/GrpcHealthCheckService.java