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,