You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ct...@apache.org on 2023/05/12 03:32:41 UTC
[accumulo] branch 2.1 updated: Show manager goal state in monitor (#3389)
This is an automated email from the ASF dual-hosted git repository.
ctubbsii pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new 1fbac624e4 Show manager goal state in monitor (#3389)
1fbac624e4 is described below
commit 1fbac624e42f36aa5691aada6c697b80eaad9d05
Author: Dom G <do...@apache.org>
AuthorDate: Thu May 11 23:32:35 2023 -0400
Show manager goal state in monitor (#3389)
Add a dialog box to the manager page in the monitor to report when the manager
is running in `SAFE_MODE` or when the goal state does not match the current state.
Co-authored-by: Christopher Tubbs <ct...@apache.org>
---
.../accumulo/monitor/resources/js/manager.js | 39 ++++++++++++++++++----
.../apache/accumulo/monitor/templates/manager.ftl | 5 ++-
2 files changed, 36 insertions(+), 8 deletions(-)
diff --git a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/manager.js b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/manager.js
index a5786dc412..716140c4f1 100644
--- a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/manager.js
+++ b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/manager.js
@@ -25,21 +25,46 @@
var managerStatusTable, recoveryListTable;
-function refreshManagerBanner() {
+function refreshManagerBanners() {
getStatus().then(function () {
- var managerStatus = JSON.parse(sessionStorage.status).managerStatus;
+ const managerStatus = JSON.parse(sessionStorage.status).managerStatus;
// If manager status is error
if (managerStatus === 'ERROR') {
- // show banner and hide table
- $('#managerBanner').show();
+ // show the manager error banner and hide table
+ $('#managerRunningBanner').show();
$('#managerStatus_wrapper').hide();
} else {
- // otherwise, hide banner and show table
- $('#managerBanner').hide();
+ // otherwise, hide the error banner and show manager table
+ $('#managerRunningBanner').hide();
$('#managerStatus_wrapper').show();
}
});
+
+ getManager().then(function () {
+ const managerData = JSON.parse(sessionStorage.manager);
+ const managerState = managerData.managerState;
+ const managerGoalState = managerData.managerGoalState;
+
+ const isStateGoalSame = managerState === managerGoalState;
+
+ // if the manager state is normal and the goal state is the same as the current state,
+ // or of the manager is not running, hide the state banner and return early
+ if ((managerState === 'NORMAL' && isStateGoalSame) || managerState === null) {
+ $('#managerStateBanner').hide();
+ return;
+ }
+
+ // update the manager state banner message and show it
+ let bannerMessage = 'Manager state: ' + managerState;
+ if (!isStateGoalSame) {
+ // only show the goal state if it differs from the manager's current state
+ bannerMessage += '. Manager goal state: ' + managerGoalState;
+ }
+ $('#manager-banner-message').text(bannerMessage);
+ $('#managerStateBanner').show();
+ });
+
}
/**
@@ -47,7 +72,7 @@ function refreshManagerBanner() {
*/
function refreshManagerTables() {
ajaxReloadTable(managerStatusTable);
- refreshManagerBanner();
+ refreshManagerBanners();
ajaxReloadTable(recoveryListTable);
}
diff --git a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/manager.ftl b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/manager.ftl
index ac2d76a9b3..a26b3b4616 100644
--- a/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/manager.ftl
+++ b/server/monitor/src/main/resources/org/apache/accumulo/monitor/templates/manager.ftl
@@ -23,9 +23,12 @@
<h3>Manager Server Overview</h3>
</div>
</div>
- <div id="managerBanner" style="display: none;">
+ <div id="managerRunningBanner" style="display: none;">
<div class="alert alert-danger" role="alert">Manager Server Not Running</div>
</div>
+ <div id="managerStateBanner" style="display: none;">
+ <div id="manager-banner-message" class="alert alert-warning" role="alert"></div>
+ </div>
<table id="managerStatus" class="table caption-top table-bordered table-striped table-condensed">
<caption><span class="table-caption">${title}</span><br /></caption>
<thead>