|
|
|
@ -10,12 +10,13 @@ import useWidgetAPI from "utils/proxy/use-widget-api";
|
|
|
|
|
|
|
|
|
|
const ChartDual = dynamic(() => import("../components/chart_dual"), { ssr: false });
|
|
|
|
|
|
|
|
|
|
const pointsLimit = 15;
|
|
|
|
|
const defaultPointsLimit = 15;
|
|
|
|
|
const defaultInterval = 1000;
|
|
|
|
|
|
|
|
|
|
export default function Component({ service }) {
|
|
|
|
|
const { t } = useTranslation();
|
|
|
|
|
const { widget } = service;
|
|
|
|
|
const { chart } = widget;
|
|
|
|
|
const { chart, refreshInterval = defaultInterval, pointsLimit = defaultPointsLimit } = widget;
|
|
|
|
|
const [, diskName] = widget.metric.split(":");
|
|
|
|
|
|
|
|
|
|
const [dataPoints, setDataPoints] = useState(
|
|
|
|
@ -24,7 +25,7 @@ export default function Component({ service }) {
|
|
|
|
|
const [ratePoints, setRatePoints] = useState(new Array(pointsLimit).fill({ a: 0, b: 0 }, 0, pointsLimit));
|
|
|
|
|
|
|
|
|
|
const { data, error } = useWidgetAPI(service.widget, "diskio", {
|
|
|
|
|
refreshInterval: 1000,
|
|
|
|
|
refreshInterval: Math.max(defaultInterval, refreshInterval),
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const calculateRates = (d) =>
|
|
|
|
@ -45,7 +46,7 @@ export default function Component({ service }) {
|
|
|
|
|
return newDataPoints;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}, [data, diskName]);
|
|
|
|
|
}, [data, diskName, pointsLimit]);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
setRatePoints(calculateRates(dataPoints));
|
|
|
|
|