import { request } from './client'; /** Живые метрики инстанса для дашборда в настройках (AGENT.md 7.19). */ export interface InstanceMetrics { cpu: { /** Загрузка в процентах от доступного времени (лимит контейнера или ядра). */ percent: number; cores: number; source: 'cgroup' | 'host' | ''; }; memory: { used_bytes: number; total_bytes: number; percent: number; source: 'cgroup' | 'host' | ''; }; disk: { used_bytes: number; total_bytes: number; free_bytes: number; }; database: { bytes: number; wal_bytes: number; }; checks: InstanceCheck[]; health: 'ok' | 'warn' | 'failed'; uptime_seconds: number; version: string; commit: string; collected_at: string; } export interface InstanceCheck { name: string; status: 'ok' | 'warn' | 'failed' | 'off'; message?: string; } export const metricsQueryKey = ['instance', 'metrics'] as const; export async function fetchInstanceMetrics(signal?: AbortSignal): Promise { const payload = await request<{ metrics: InstanceMetrics }>( '/instance/metrics', signal === undefined ? {} : { signal }, ); return payload.metrics; }