mirror of
https://github.com/whyour/qinglong.git
synced 2026-08-16 22:38:39 +08:00
35 lines
1001 B
JavaScript
35 lines
1001 B
JavaScript
const assert = require('node:assert/strict');
|
|
const test = require('node:test');
|
|
|
|
const {
|
|
MAX_METRIC_SAMPLES,
|
|
metricsService,
|
|
} = require('../../back/services/metrics');
|
|
|
|
test('metrics keep only the newest bounded samples', () => {
|
|
const sampleCount = MAX_METRIC_SAMPLES * 50;
|
|
for (let index = 0; index < sampleCount; index++) {
|
|
metricsService.record('http_request', index, {
|
|
path: `/health/${index}`,
|
|
});
|
|
}
|
|
|
|
const result = metricsService.getMetrics('http_request');
|
|
assert.equal(result.count, MAX_METRIC_SAMPLES);
|
|
assert.equal(result.metrics[0].value, sampleCount - MAX_METRIC_SAMPLES);
|
|
assert.equal(result.metrics.at(-1).value, sampleCount - 1);
|
|
});
|
|
|
|
test('empty metric queries return finite aggregates', () => {
|
|
const result = metricsService.getMetrics('missing_metric');
|
|
assert.deepEqual(
|
|
{
|
|
count: result.count,
|
|
average: result.average,
|
|
min: result.min,
|
|
max: result.max,
|
|
},
|
|
{ count: 0, average: 0, min: 0, max: 0 },
|
|
);
|
|
});
|