This is an automated email from the ASF dual-hosted git repository.

dlmarion pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/accumulo.git


The following commit(s) were added to refs/heads/main by this push:
     new d0a8c5ed65 Added alerts for compaction issues (#6394)
d0a8c5ed65 is described below

commit d0a8c5ed65717caf85068a8296436d172df914d1
Author: Dave Marion <[email protected]>
AuthorDate: Tue May 26 10:52:45 2026 -0400

    Added alerts for compaction issues (#6394)
---
 .../accumulo/monitor/next/SystemInformation.java   | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git 
a/server/monitor/src/main/java/org/apache/accumulo/monitor/next/SystemInformation.java
 
b/server/monitor/src/main/java/org/apache/accumulo/monitor/next/SystemInformation.java
index 6d5b070a65..698bf8cc90 100644
--- 
a/server/monitor/src/main/java/org/apache/accumulo/monitor/next/SystemInformation.java
+++ 
b/server/monitor/src/main/java/org/apache/accumulo/monitor/next/SystemInformation.java
@@ -806,12 +806,25 @@ public class SystemInformation {
     deployment.computeIfAbsent(server.getResourceGroup(), g -> new 
ConcurrentHashMap<>())
         .computeIfAbsent(server.getType(), t -> new 
ProcessSummary()).addResponded(server);
     captureRecoveriesInProgress(server, response);
+    FMetric flatbuffer = new FMetric();
     switch (response.serverType) {
       case COMPACTOR:
         compactors
             .computeIfAbsent(response.getResourceGroup(), (rg) -> 
ConcurrentHashMap.newKeySet())
             .add(server);
         updateAggregates(response, totalCompactorMetrics, rgCompactorMetrics);
+        for (ByteBuffer binary : response.getMetrics()) {
+          flatbuffer = FMetric.getRootAsFMetric(binary, flatbuffer);
+          final String metricName = flatbuffer.name();
+          if 
(metricName.equals(Metric.COMPACTOR_MAJC_FAILURES_CONSECUTIVE.getName())) {
+            boolean failures = getMetricValue(flatbuffer).longValue() > 0;
+            if (failures) {
+              addAlert(Info, Resource,
+                  "Compactor has had " + failures + " consecutive failures: " 
+ server.toString());
+            }
+            break;
+          }
+        }
         break;
       case GARBAGE_COLLECTOR:
         if (gc.get() == null || !gc.get().equals(server)) {
@@ -820,7 +833,6 @@ public class SystemInformation {
         break;
       case MANAGER:
         managers.add(server);
-        FMetric flatbuffer = new FMetric();
         for (ByteBuffer binary : response.getMetrics()) {
           flatbuffer = FMetric.getRootAsFMetric(binary, flatbuffer);
           final String metricName = flatbuffer.name();
@@ -843,6 +855,14 @@ public class SystemInformation {
             if (tablets > 0) {
               addAlert(High, Table, "At least " + tablets + " user table 
tablets require recovery");
             }
+          } else if 
(metricName.equals(Metric.COMPACTION_ROOT_SVC_ERRORS.getName())
+              || metricName.equals(Metric.COMPACTION_META_SVC_ERRORS.getName())
+              || 
metricName.equals(Metric.COMPACTION_USER_SVC_ERRORS.getName())) {
+            long compactionServiceErrors = 
getMetricValue(flatbuffer).longValue();
+            if (compactionServiceErrors > 0) {
+              addAlert(Critical, Configuration,
+                  "A compaction service configuration is invalid. Check the 
Manager log.");
+            }
           }
         }
         break;

Reply via email to