@Override
  public Set<NodeHealth> readAll() {
    long clusterTime = hzMember.getClusterTime();
    long timeout = clusterTime - TIMEOUT_30_SECONDS;
    Map<UUID, TimestampedNodeHealth> sqHealthState = readReplicatedMap();
    Set<UUID> hzMemberUUIDs = hzMember.getMemberUuids();
    Set<NodeHealth> existingNodeHealths = sqHealthState.entrySet().stream()
      .filter(outOfDate(timeout))
      .filter(ofNonExistentMember(hzMemberUUIDs))
      .map(entry -> entry.getValue().getNodeHealth())
      .collect(Collectors.toSet());
    if (LOG.isTraceEnabled()) {
      LOG.trace("Reading {} and keeping {}", new HashMap<>(sqHealthState), existingNodeHealths);
    }
    return ImmutableSet.copyOf(existingNodeHealths);
  }
@Test
  public void readAll_logs_map_sq_health_state_content_and_the_content_effectively_returned_if_TRACE() {
    logging.setLevel(Level.TRACE);
    Map<UUID, TimestampedNodeHealth> map = new HashMap<>();
    UUID uuid = UUID.randomUUID();
    NodeHealth nodeHealth = randomNodeHealth();
    map.put(uuid, new TimestampedNodeHealth(nodeHealth, clusterTime - 1));
    when(hazelcastMember.getClusterTime()).thenReturn(clusterTime);
    when(hazelcastMember.getMemberUuids()).thenReturn(singleton(uuid));
    doReturn(map).when(hazelcastMember).getReplicatedMap(MAP_SQ_HEALTH_STATE);

    underTest.readAll();

    assertThat(logging.getLogs()).hasSize(1);
    assertThat(logging.hasLog(Level.TRACE, "Reading " + new HashMap<>(map) + " and keeping " + singleton(nodeHealth))).isTrue();
  }