diff --git a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/functions.js b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/functions.js index bbe619a5c01..832f239e9ad 100644 --- a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/functions.js +++ b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/functions.js @@ -575,11 +575,24 @@ function getStoredStatusData() { } function getComponentStatus(statusData, componentType) { + const status = statusData.componentStatuses[componentType]; + + if (componentType === 'SCAN_SERVER'){ + const respondingServers = getServerCounts(status).at(0); + const totalServers = getServerCounts(status).at(1); + if (respondingServers === totalServers) { + return 'OK'; + } else if (respondingServers === 0 && totalServers > 0) { + return 'ERROR'; + } else if (respondingServers > 0 && respondingServers < totalServers){ + return 'WARN' + } + } + if (!statusData || !statusData.componentStatuses) { return 'ERROR'; } - var status = statusData.componentStatuses[componentType]; if (!status || !status.hasServers) { return 'ERROR'; } diff --git a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/navbar.js b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/navbar.js index 7c2e1b798d8..bb0bb9ebb84 100644 --- a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/navbar.js +++ b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/navbar.js @@ -101,6 +101,14 @@ function updateServerCount(elementId, status) { $element.text(`${responding}/${total}`); } +function getServerCounts(component) +{ + const total = Number(component.serverCount); + const problem = Number(component.problemServerCount || 0); + const responding = Math.max(0, total - problem); + return [responding, total]; +} + /** * Updates the notifications of the servers dropdown notification as well as the individual server notifications. * @param {JSON} statusData object containing the status info for the servers