const BASE = process.env.PROMETHEUS_URL ?? 'http://prometheus:9090'; interface PromResponse { status: string; data: { result: Array<{ value: [number, string] }> }; } /** Run an instant query and return the scalar value, or null on error. */ export async function scalar(q: string): Promise { try { const url = `${BASE}/api/v1/query?query=${encodeURIComponent(q)}`; const res = await fetch(url, { signal: AbortSignal.timeout(6_000) }); const json = await res.json() as PromResponse; if (json.status === 'success' && json.data.result.length > 0) { return parseFloat(json.data.result[0].value[1]); } } catch { /* unreachable */ } return null; }