code: private void checkInit(MetricConfig config, long now) {
          if (samples.size() == 0) {
              this.samples.add(newSample(now));
              this.samples.add(newSample(now - config.timeWindowMs()));
          }
      }
docs: Checks that the sample windows are properly initialized.
  
  In case there are no initialized sample yet, this creates two windows: one that begins now, as well as the
  previous window before that. This ensures that any measurement won't be calculated over an elapsed time of zero
  or few milliseconds. This is particularly significant for {@link io.tehuti.metrics.stats.Rate}, which can
  otherwise report disproportionately high values in those conditions. The downside of this approach is that
  Rates will under-report their values initially by virtue of carrying one empty window in their samples.