From 8926e2f194a70f5061c41e337767da87b2866aa6 Mon Sep 17 00:00:00 2001 From: Benoit SERRA Date: Mon, 26 Dec 2022 07:36:36 +0100 Subject: [PATCH] Opnsense widget (#3) * OPNSense widget : initial version, memory usage is inaccurate. * OPNSense widget : code cleanup in widget.js. Firewall is no longer displayed, so it did not need to be queried. * OPNSense widget : fixing the CPU code to make it more reliable. * OPNSense widget : fixing the CPU code to make it more reliable. Removing uptime info --- src/widgets/opnsense/component.jsx | 9 +++------ src/widgets/opnsense/widget.js | 6 ++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/widgets/opnsense/component.jsx b/src/widgets/opnsense/component.jsx index 1757d68f..d9e64929 100644 --- a/src/widgets/opnsense/component.jsx +++ b/src/widgets/opnsense/component.jsx @@ -20,7 +20,6 @@ export default function Component({ service }) { if (!activityData || !interfaceData) { return ( - @@ -29,10 +28,9 @@ export default function Component({ service }) { ); } - const cpuInfos = activityData.headers[2].split(" "); - const cpu = parseFloat(cpuInfos[2]) + parseFloat(cpuInfos[5]) + parseFloat(cpuInfos[8]) + parseFloat(cpuInfos[11]); - const uptimeInfos = activityData.headers[0].match(/.* up ([0-9+:]*) .*/); - const uptime = uptimeInfos[1]; + + const cpuidle = activityData.headers[2].substring(60,64); + const cpu = 100 - parseFloat(cpuidle); const memoryInfos = activityData.headers[3].split(" "); const totalMemory = parseFloat(memoryInfos[1]) + parseFloat(memoryInfos[3]) + parseFloat(memoryInfos[5]) + parseFloat(memoryInfos[7]) + parseFloat(memoryInfos[9])/1024 + parseFloat(memoryInfos[11]); const memory = ( 1 - parseFloat(memoryInfos[11]) / totalMemory) * 100; @@ -42,7 +40,6 @@ export default function Component({ service }) { return ( - diff --git a/src/widgets/opnsense/widget.js b/src/widgets/opnsense/widget.js index 56ad0733..a144ee4c 100644 --- a/src/widgets/opnsense/widget.js +++ b/src/widgets/opnsense/widget.js @@ -8,9 +8,15 @@ const widget = { mappings: { activity: { endpoint: "diagnostics/activity/getActivity", + validate: [ + "headers" + ] }, interface: { endpoint: "diagnostics/traffic/interface", + validate: [ + "interfaces" + ] } }, };