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

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


The following commit(s) were added to refs/heads/elasticity by this push:
     new 6dab68d35b Wire up majc queued and running metrics in 
Manager/CompactionCoordinator (#3960)
6dab68d35b is described below

commit 6dab68d35b0dd6184ffa8abbce1d842c6cd74034
Author: Dave Marion <dlmar...@apache.org>
AuthorDate: Tue Nov 21 11:26:38 2023 -0500

    Wire up majc queued and running metrics in Manager/CompactionCoordinator 
(#3960)
    
    Fixes #3619
---
 .../org/apache/accumulo/core/metrics/MetricsProducer.java |  2 +-
 .../main/java/org/apache/accumulo/manager/Manager.java    | 15 +++++++++++++++
 .../compaction/coordinator/CompactionCoordinator.java     |  4 ++++
 .../manager/compaction/queue/CompactionJobQueues.java     |  8 ++++++++
 .../java/org/apache/accumulo/test/metrics/MetricsIT.java  |  2 +-
 5 files changed, 29 insertions(+), 2 deletions(-)

diff --git 
a/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java 
b/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java
index 6bfc307fe6..8c785267f2 100644
--- a/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java
+++ b/core/src/main/java/org/apache/accumulo/core/metrics/MetricsProducer.java
@@ -700,7 +700,7 @@ public interface MetricsProducer {
   String METRICS_MANAGER_META_TGW_ERRORS = METRICS_MANAGER_PREFIX + 
"tabletmgmt.meta.errors";
   String METRICS_MANAGER_USER_TGW_ERRORS = METRICS_MANAGER_PREFIX + 
"tabletmgmt.user.errors";
 
-  String METRICS_MAJC_PREFIX = "accumulo.tserver.compactions.majc.";
+  String METRICS_MAJC_PREFIX = "accumulo.compactions.majc.";
   String METRICS_MAJC_QUEUED = METRICS_MAJC_PREFIX + "queued";
   String METRICS_MAJC_RUNNING = METRICS_MAJC_PREFIX + "running";
   String METRICS_MAJC_PAUSED = METRICS_MAJC_PREFIX + "paused";
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java 
b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
index 6608b56638..45f17c412c 100644
--- a/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
+++ b/server/manager/src/main/java/org/apache/accumulo/manager/Manager.java
@@ -162,6 +162,8 @@ import com.google.common.util.concurrent.RateLimiter;
 import com.google.common.util.concurrent.Uninterruptibles;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import io.micrometer.core.instrument.Gauge;
+import io.micrometer.core.instrument.MeterRegistry;
 import io.opentelemetry.api.trace.Span;
 import io.opentelemetry.context.Scope;
 
@@ -1662,4 +1664,17 @@ public class Manager extends AbstractServer
         throw new IllegalStateException("Unhandled DataLevel value: " + level);
     }
   }
+
+  @Override
+  public void registerMetrics(MeterRegistry registry) {
+    super.registerMetrics(registry);
+    Gauge.builder(METRICS_MAJC_QUEUED, compactionJobQueues, 
CompactionJobQueues::getQueuedJobCount)
+        .description("Number of queued major compactions").register(registry);
+    Gauge
+        .builder(METRICS_MAJC_RUNNING, compactionCoordinator,
+            CompactionCoordinator::getNumRunningCompactions)
+        .description("Number of running major compactions").register(registry);
+
+  }
+
 }
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionCoordinator.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionCoordinator.java
index 329f57b24a..887b80ca86 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionCoordinator.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/compaction/coordinator/CompactionCoordinator.java
@@ -360,6 +360,10 @@ public class CompactionCoordinator implements 
CompactionCoordinatorService.Iface
 
   }
 
+  public long getNumRunningCompactions() {
+    return RUNNING_CACHE.size();
+  }
+
   /**
    * Return the next compaction job from the queue to a Compactor
    *
diff --git 
a/server/manager/src/main/java/org/apache/accumulo/manager/compaction/queue/CompactionJobQueues.java
 
b/server/manager/src/main/java/org/apache/accumulo/manager/compaction/queue/CompactionJobQueues.java
index bce1f05d7f..0ff572cb8a 100644
--- 
a/server/manager/src/main/java/org/apache/accumulo/manager/compaction/queue/CompactionJobQueues.java
+++ 
b/server/manager/src/main/java/org/apache/accumulo/manager/compaction/queue/CompactionJobQueues.java
@@ -91,6 +91,14 @@ public class CompactionJobQueues {
     return priorityQueues.mappingCount();
   }
 
+  public long getQueuedJobCount() {
+    long count = 0;
+    for (CompactionJobPriorityQueue queue : priorityQueues.values()) {
+      count += queue.getQueuedJobs();
+    }
+    return count;
+  }
+
   public static class MetaJob {
     private final CompactionJob job;
 
diff --git a/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java 
b/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java
index 80bcb2b84c..55e9407258 100644
--- a/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java
@@ -96,7 +96,7 @@ public class MetricsIT extends ConfigurableMacBase implements 
MetricsProducer {
 
     Set<String> unexpectedMetrics = Set.of(METRICS_SCAN_YIELDS, 
METRICS_UPDATE_ERRORS,
         METRICS_SCAN_BUSY_TIMEOUT, METRICS_SCAN_PAUSED_FOR_MEM, 
METRICS_SCAN_RETURN_FOR_MEM,
-        METRICS_MINC_PAUSED, METRICS_MAJC_PAUSED, METRICS_MAJC_QUEUED, 
METRICS_MAJC_RUNNING);
+        METRICS_MINC_PAUSED, METRICS_MAJC_PAUSED);
     Set<String> flakyMetrics = Set.of(METRICS_GC_WAL_ERRORS, 
METRICS_FATE_TYPE_IN_PROGRESS,
         METRICS_PROPSTORE_EVICTION_COUNT, METRICS_PROPSTORE_REFRESH_COUNT,
         METRICS_PROPSTORE_REFRESH_LOAD_COUNT, METRICS_PROPSTORE_ZK_ERROR_COUNT,

Reply via email to