public ImmutableSet variantOverlap()

in dashboard/src/main/java/com/google/cloud/solutions/realtimedash/dashboard/TimeseriesMetricsController.java [110:136]


  public ImmutableSet<OverlapMetric> variantOverlap(Jedis redisClient) {
    Set<String> variants = redisClient.keys("set_var_*");

    if (variants == null || variants.size() == 0) {
      return ImmutableSet.of();
    }

    return Sets.combinations(variants, 2)
        .stream()
        .map(variantCombination -> variantCombination.toArray(new String[0]))
        .map(variantCombination -> {

          String sinterStoreKey = Joiner.on("-").join("overlap_", variantCombination);

          redisClient.sinterstore(sinterStoreKey, variantCombination);

          ImmutableSet<String> variantCombinationSet
              = Arrays.stream(variantCombination).map(name -> name.replaceFirst("set_var_", ""))
              .collect(toImmutableSet());

          return OverlapMetric.builder()
              .setDimensions(variantCombinationSet)
              .setMetric(redisClient.scard(sinterStoreKey))
              .build();
        })
        .collect(toImmutableSet());
  }