docs: private boolean suspectMemberIfNotHeartBeating(long now, Member member) {
          if (clusterService.getMembershipManager().isMemberSuspected(member.getAddress())) {
              return true;
          }
  
          long lastHeartbeat = heartbeatFailureDetector.lastHeartbeat(member);
          if (!heartbeatFailureDetector.isAlive(member, now)) {
              double suspicionLevel = heartbeatFailureDetector.suspicionLevel(member, now);
              String reason = format("Suspecting %s because it has not sent any heartbeats since %s."
                              + " Now: %s, heartbeat timeout: %d ms, suspicion level: %.2f",
                      member, timeToString(lastHeartbeat), timeToString(now), maxNoHeartbeatMillis, suspicionLevel);
              logger.warning(reason);
              clusterService.suspectMember(member, reason, true);
              return true;
          }
          if (logger.isFineEnabled() && (now - lastHeartbeat) > heartbeatIntervalMillis * HEART_BEAT_INTERVAL_FACTOR) {
              double suspicionLevel = heartbeatFailureDetector.suspicionLevel(member, now);
              logger.fine(format("Not receiving any heartbeats from %s since %s, suspicion level: %.2f",
                      member, timeToString(lastHeartbeat), suspicionLevel));
          }
          return false;
      }