gatherMetrics() {
    const uberMetrics = getUberMetrics(this._auditResults);
    if (!uberMetrics) {
      return [];
    }

    /** @type {Array<{ts: number, id: string, name: string}>} */
    const resolvedMetrics = [];
    MetricTraceEvents.metricsDefinitions.forEach(metric => {
      // Skip if auditResults is missing a particular audit result
      const ts = uberMetrics[metric.tsKey];
      if (ts === undefined) {
        log.error('pwmetrics-events', `${metric.name} timestamp not found`);
        return;
      }

      resolvedMetrics.push({
        id: metric.id,
        name: metric.name,
        ts,
      });
    });

    return resolvedMetrics;
  }
Returns simplified representation of all metrics' timestamps from monotonic clock
@return {Array<{ts: number, id: string, name: string}>} metrics to consider