Metric Correlations
This commit is contained in:
+21
-7
@@ -14,6 +14,7 @@ import {
|
||||
import { getStore } from '../services/store.js'
|
||||
import { getCollector } from '../services/collector.js'
|
||||
import { getAnomalyEngine } from '../services/anomaly.js'
|
||||
import { computeWeights } from '../services/weights.js'
|
||||
import { listAlerts, getAlert } from '../services/alerts.js'
|
||||
import { getServerPublicKeyHex } from '../core/auth-keys.js'
|
||||
import { formatAllMetrics } from './formatters.js'
|
||||
@@ -156,14 +157,27 @@ export async function handleRest(pathname, query) {
|
||||
return json(result)
|
||||
}
|
||||
|
||||
// ── weights / q (stubs with useful MVP behavior) ─────────
|
||||
// ── weights / metric correlations scoring ────────────────
|
||||
if (path === '/api/v3/weights' || path === '/api/v2/weights' || path === '/api/v1/weights') {
|
||||
return json(
|
||||
getAnomalyEngine().getWeights({
|
||||
chart: query.get('chart') || query.get('context') || undefined,
|
||||
limit: Number(query.get('limit') || query.get('points') || 100) || 100,
|
||||
})
|
||||
)
|
||||
const result = await computeWeights({
|
||||
method: query.get('method') || undefined,
|
||||
chart: query.get('chart') || query.get('context') || undefined,
|
||||
charts: query.get('charts') || undefined,
|
||||
contexts: query.get('contexts') || undefined,
|
||||
dimensions: query.get('dimensions') || undefined,
|
||||
after: query.get('after') ?? query.get('highlight_after') ?? undefined,
|
||||
before: query.get('before') ?? query.get('highlight_before') ?? undefined,
|
||||
baseline_after: query.get('baseline_after') || undefined,
|
||||
baseline_before: query.get('baseline_before') || undefined,
|
||||
points: query.get('points') || undefined,
|
||||
limit: query.get('limit') || undefined,
|
||||
timeout: query.get('timeout') || undefined,
|
||||
time_group: query.get('time_group') || query.get('group') || undefined,
|
||||
})
|
||||
if (result.error) {
|
||||
return { status: 400, contentType: 'application/json', body: JSON.stringify(result) }
|
||||
}
|
||||
return json(result)
|
||||
}
|
||||
if (path === '/api/v3/q' || path === '/api/v2/q') {
|
||||
const q = (query.get('q') || query.get('query') || '').toLowerCase()
|
||||
|
||||
Reference in New Issue
Block a user