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
);
}
}