docs: public FireDepartmentMetrics merge(FireDepartmentMetrics other)
    {
      Preconditions.checkNotNull(other, "Cannot merge a null FireDepartmentMetrics");
      FireDepartmentMetrics otherSnapshot = other.snapshot();
      processedCount.addAndGet(otherSnapshot.processed());
      processedWithErrorsCount.addAndGet(otherSnapshot.processedWithErrors());
      thrownAwayCount.addAndGet(otherSnapshot.thrownAway());
      rowOutputCount.addAndGet(otherSnapshot.rowOutput());
      unparseableCount.addAndGet(otherSnapshot.unparseable());
      dedupCount.addAndGet(otherSnapshot.dedup());
      numPersists.addAndGet(otherSnapshot.numPersists());
      persistTimeMillis.addAndGet(otherSnapshot.persistTimeMillis());
      persistBackPressureMillis.addAndGet(otherSnapshot.persistBackPressureMillis());
      failedPersists.addAndGet(otherSnapshot.failedPersists());
      failedHandoffs.addAndGet(otherSnapshot.failedHandoffs());
      mergeTimeMillis.addAndGet(otherSnapshot.mergeTimeMillis());
      mergeCpuTime.addAndGet(otherSnapshot.mergeCpuTime());
      persistCpuTime.addAndGet(otherSnapshot.persistCpuTime());
      handOffCount.addAndGet(otherSnapshot.handOffCount());
      sinkCount.addAndGet(otherSnapshot.sinkCount());
      messageMaxTimestamp.set(Math.max(messageMaxTimestamp(), otherSnapshot.messageMaxTimestamp()));
      messageGap.set(Math.max(messageGap(), otherSnapshot.messageGap()));
      return this;
    }