You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by dl...@apache.org on 2023/11/21 16:26:46 UTC
(accumulo) branch elasticity updated: Wire up majc queued and running metrics in Manager/CompactionCoordinator (#3960)
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 <dl...@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,