diff --git a/src/widgets/glances/component.jsx b/src/widgets/glances/component.jsx index 3abef0d42..df916b4ba 100644 --- a/src/widgets/glances/component.jsx +++ b/src/widgets/glances/component.jsx @@ -6,6 +6,7 @@ import Process from "./metrics/process"; import Disk from "./metrics/disk"; import GPU from "./metrics/gpu"; import Info from "./metrics/info"; +import Fs from "./metrics/fs"; export default function Component({ service }) { const { widget } = service; @@ -22,6 +23,10 @@ export default function Component({ service }) { return ; } + if (widget.metric === "cpu") { + return ; + } + if (widget.metric.match(/^network:/)) { return ; } @@ -38,7 +43,7 @@ export default function Component({ service }) { return ; } - if (widget.metric === "cpu") { - return ; + if (widget.metric.match(/^fs:/)) { + return ; } } diff --git a/src/widgets/glances/metrics/fs.jsx b/src/widgets/glances/metrics/fs.jsx new file mode 100644 index 000000000..68e40b1b0 --- /dev/null +++ b/src/widgets/glances/metrics/fs.jsx @@ -0,0 +1,69 @@ +import dynamic from "next/dynamic"; +import { useTranslation } from "next-i18next"; + +import Error from "../components/error"; +import Container from "../components/container"; +import Block from "../components/block"; + +import useWidgetAPI from "utils/proxy/use-widget-api"; + +const Chart = dynamic(() => import("../components/chart"), { ssr: false }); + +export default function Component({ service }) { + const { t } = useTranslation(); + const { widget } = service; + const [, fsName] = widget.metric.split(':'); + + const { data, error } = useWidgetAPI(widget, 'fs', { + refreshInterval: 1000, + }); + + if (error) { + return ; + } + + if (!data) { + return -; + } + + const fsData = data.find((item) => item[item.key] === fsName); + + if (!fsData) { + return -; + } + + return ( + +
+
+
+ {t("common.bbytes", { + value: fsData.used, + maximumFractionDigits: 0, + })} {t("resources.used")} +
+
+ {t("common.bbytes", { + value: fsData.free, + maximumFractionDigits: 0, + })} {t("resources.free")} +
+
+ + +
+ {t("common.bbytes", { + value: fsData.size, + maximumFractionDigits: 1, + })} +
+
+ + ); +} diff --git a/src/widgets/glances/metrics/info.jsx b/src/widgets/glances/metrics/info.jsx index 104130eec..0f82a5aff 100644 --- a/src/widgets/glances/metrics/info.jsx +++ b/src/widgets/glances/metrics/info.jsx @@ -96,7 +96,7 @@ export default function Component({ service }) {
)} - {quicklookData && quicklookData.swap && ( + {quicklookData && quicklookData.swap !== 0 && (
{t("glances.swap")}