code: public @Nullable CheckResponse check(CheckRequest req) {
      startIfStopped();
      statistics.totalChecks.incrementAndGet();
      Stopwatch w = Stopwatch.createStarted(ticker);
      CheckResponse resp = checkAggregator.check(req);
      statistics.totalCheckCacheLookupTimeMillis.addAndGet(w.elapsed(TimeUnit.MILLISECONDS));
      if (resp != null) {
        statistics.checkHits.incrementAndGet();
        log.atFiner().log("using cached check response for %s: %s", req, resp);
        return resp;
      }
  
      // Application code should not fail (or be blocked) because check request's do not succeed.
      // Instead they should fail open so here just simply log the error and return None to indicate
      // that no response was obtained.
      try {
        w.reset().start();
        resp = transport.services().check(serviceName, req).execute();
        statistics.totalCheckTransportTimeMillis.addAndGet(w.elapsed(TimeUnit.MILLISECONDS));
        checkAggregator.addResponse(req, resp);
        return resp;
      } catch (IOException e) {
        log.atSevere().withCause(e).log("direct send of a check request %s failed", req);
        return null;
      }
    }
docs: Process a check request.
  
  The {@code req} is first passed to the {@code CheckAggregator}. If there is a valid cached
  response, that is returned, otherwise a response is obtained from the transport.
  
  @param req a {@link CheckRequest}
  @return a {@link CheckResponse} or {@code null} if none was cached and there was a transport
  failure