43 lines
1023 B
JavaScript
43 lines
1023 B
JavaScript
import test from 'brittle'
|
|
import { MetricStore } from '../server/services/store.js'
|
|
|
|
test('store ingest + query', async (t) => {
|
|
const store = new MetricStore()
|
|
const now = Date.now()
|
|
for (let i = 0; i < 30; i++) {
|
|
store.ingest([
|
|
{
|
|
chart: 'system.cpu',
|
|
context: 'system.cpu',
|
|
ts: now - (30 - i) * 1000,
|
|
values: {
|
|
user: 10 + i,
|
|
system: 5,
|
|
nice: 0,
|
|
iowait: 0,
|
|
irq: 0,
|
|
softirq: 0,
|
|
idle: 85 - i,
|
|
},
|
|
},
|
|
])
|
|
}
|
|
|
|
const meta = store.getMeta('system.cpu')
|
|
t.ok(meta)
|
|
t.is(meta.context, 'system.cpu')
|
|
|
|
const q = await store.query({ chart: 'system.cpu', after: -60, before: 0, points: 15 })
|
|
t.absent(q.error)
|
|
t.ok(q.data.length > 0)
|
|
t.ok(q.labels.includes('user'))
|
|
t.ok(q.labels.includes('time'))
|
|
t.ok(q.source)
|
|
})
|
|
|
|
test('store unknown chart', async (t) => {
|
|
const store = new MetricStore()
|
|
const q = await store.query({ chart: 'nope.chart', points: 10 })
|
|
t.ok(q.error)
|
|
})
|