import { MonitoringProvider, useMetricRange } from '@monitoring/sdk-react';
<MonitoringProvider
baseUrl="https://api.unimoni.example.com"
fetchToken={async () => {
const r = await fetch('/api/dashboard-token').then(r => r.json());
return { token: r.token, expiresAt: new Date(r.expiresAt) };
}}
>
<Widget />
</MonitoringProvider>
function Widget() {
const { data, loading, error } = useMetricRange('system_cpu_usage_percent', {
last: '1h',
step: '15s',
labels: { host: 'web-01' },
});
if (loading) return <Spinner />;
if (error) return <Error message={error.message} />;
return <YourChart series={data!.data.result} />;
}
API
useMetricRange(metric, opts) — для line/sparkline/tableuseMetricLatest(metric, opts) — для gauge/badge