File size: 753 Bytes
c9d42cc cce8120 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 'use client';
"use client";
import {useEffect,useState} from "react";
import monitoring from "../services/monitoring/client";
export default function useMonitoring(interval=5000){
const [data,setData]=useState({});
const [loading,setLoading]=useState(true);
async function refresh(){
setLoading(true);
try{
const [
overview,
metrics,
system,
health
]=await Promise.all([
monitoring.overview(),
monitoring.metrics(),
monitoring.system(),
monitoring.health()
]);
setData({
overview:overview.data,
metrics:metrics.data,
system:system.data,
health:health.data
});
}finally{
setLoading(false);
}
}
useEffect(()=>{
refresh();
const id=setInterval(refresh,interval);
return()=>clearInterval(id);
},[interval]);
return{
loading,
data,
refresh
};
}
|