public Metrics add(Set<String> livePodIds, RawMetrics raw) { this.version = raw.getVersion(); this.messages += raw.getMessages(); this.errors += raw.getErrors(); //Let's simply grab the oldest living pod, we will need to revisit when doing rolling upgrades etc if (livePodIds.contains(raw.getPod())) { if (this.startDate.isPresent()) { if (raw.getStartDate().get().before(this.startDate.get())) { this.setStartDate(raw.getStartDate()); } } else { this.setStartDate(raw.getStartDate()); } } if (raw.getLastProcessed().isPresent()) { if (this.getLastProcessed().isPresent()) { this.setLastProcessed(raw.getLastProcessed().get().after(this.getLastProcessed().get()) ? raw.getLastProcessed() : this.getLastProcessed()); } else { this.setLastProcessed(raw.getLastProcessed()); } } return this; } }
String historyKey = HISTORY + entry.getValue().getVersion(); if (! entry.getKey().contains(historyKey) && ! livePodIds.contains(entry.getKey())) { //dead pod check if (metrics.containsKey(historyKey)) { RawMetrics updatedHistoryMetrics = new RawMetrics.Builder() .integrationId(integrationId) .version(dead.getVersion()) .pod(history.getIntegrationId() + ":" + dead.getPod()) .messages(history.getMessages() + dead.getMessages())
/** * Fill a builder with attribute values from the provided {@code RawMetrics} instance. * Regular attribute values will be replaced with those from the given instance. * Absent optional values will not replace present values. * @param instance The instance from which to copy values * @return {@code this} builder for use in a chained invocation */ public final RawMetrics.Builder from(RawMetrics instance) { Objects.requireNonNull(instance, "instance"); integrationId(instance.getIntegrationId()); version(instance.getVersion()); pod(instance.getPod()); messages(instance.getMessages()); errors(instance.getErrors()); Optional<Date> startDateOptional = instance.getStartDate(); if (startDateOptional.isPresent()) { startDate(startDateOptional); } Optional<Date> resetDateOptional = instance.getResetDate(); if (resetDateOptional.isPresent()) { resetDate(resetDateOptional); } Optional<Date> lastProcessedOptional = instance.getLastProcessed(); if (lastProcessedOptional.isPresent()) { lastProcessed(lastProcessedOptional); } return (RawMetrics.Builder) this; }
String version = raw.getVersion(); Metrics mh = m.containsKey(version) ? m.get(version) : new Metrics(); mh.add(livePodIds, raw);