docs: protected List<MetricDatum> counterMetricOf(MetricType type,
              Request<?> req, Object resp, boolean includesRequestType) {
          AWSRequestMetrics m = req.getAWSRequestMetrics();
          TimingInfo ti = m.getTimingInfo();
          final String metricName = type.name();
          Number counter = ti.getCounter(metricName);
          if (counter == null) {
              return Collections.emptyList();
          }
          int count = counter.intValue();
          if (count < 1) {
              LogFactory.getLog(getClass()).debug("Count must be at least one");
              return Collections.emptyList();
          }
          final List<MetricDatum> result = new ArrayList<MetricDatum>();
          final Dimension metricDimension = new Dimension()
              .withName(Dimensions.MetricType.name())
              .withValue(metricName);
          // non-request type specific metric datum
          final MetricDatum first = new MetricDatum()
              .withMetricName(req.getServiceName())
              .withDimensions(metricDimension)
              .withUnit(StandardUnit.Count)
              .withValue(Double.valueOf(count))
              .withTimestamp(endTimestamp(ti));
          result.add(first);
          if (includesRequestType) {
              // additional request type specific metric datum
              Dimension requestDimension = new Dimension()
                  .withName(Dimensions.RequestType.name())
                  .withValue(requestType(req));
              final MetricDatum second =
                  newMetricDatum(first, metricDimension, requestDimension);
              result.add(second);
          }
          return result;
      }