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"; import ResolvedIcon from "components/resolvedicon"; const statusMap = { R: , // running S: , // sleeping D: , // disk sleep Z: , // zombie T: , // traced t: , // traced X: , // dead }; const defaultInterval = 1000; export default function Component({ service }) { const { t } = useTranslation(); const { widget } = service; const { chart, refreshInterval = defaultInterval } = widget; const { data, error } = useWidgetAPI(service.widget, "processlist", { refreshInterval: Math.max(defaultInterval, refreshInterval), }); if (error) { return ( ); } if (!data) { return ( - ); } data.splice(chart ? 5 : 1); return (
{t("resources.cpu")}
{t("resources.mem")}
{data.map((item) => (
{statusMap[item.status]}
{item.name}
{item.cpu_percent.toFixed(1)}%
{t("common.bytes", { value: item.memory_info[0], maximumFractionDigits: 0, })}
))}
); }