setAccumulateSamples()

in glean/src/core/metrics/types/timing_distribution.ts [231:261]


  setAccumulateSamples(samples: number[]) {
    if (!this.shouldRecord(Context.uploadEnabled)) {
      return;
    }

    const maxSampleTime = convertTimeUnitToNanos(MAX_SAMPLE_TIME, this.timeUnit as TimeUnit);
    Context.metricsDatabase.transform(
      this,
      this.setAccumulateSamplesTransformFn(samples, maxSampleTime)
    );

    const numNegativeSamples = getNumNegativeSamples(samples);
    if (numNegativeSamples > 0) {
      Context.errorManager.record(
        this,
        ErrorType.InvalidValue,
        `Accumulated ${numNegativeSamples} negative samples`,
        numNegativeSamples
      );
    }

    const numTooLongSamples = getNumTooLongSamples(samples, maxSampleTime);
    if (numTooLongSamples > 0) {
      Context.errorManager.record(
        this,
        ErrorType.InvalidOverflow,
        `${numTooLongSamples} samples are longer than the maximum of ${maxSampleTime}`,
        numTooLongSamples
      );
    }
  }