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 3932026f5a Fixed integration tests failing from recent metric changes
(#6339)
3932026f5a is described below
commit 3932026f5a8bb335ea99638954c7a8db13ffba6e
Author: Dave Marion <[email protected]>
AuthorDate: Mon Apr 27 11:25:08 2026 -0400
Fixed integration tests failing from recent metric changes (#6339)
---
.../monitor/resources/js/server_process_common.js | 4 +--
.../compaction/ClassLoaderContextCompactionIT.java | 30 ++++++++++++----------
.../compaction/ExternalCompactionProgressIT.java | 3 ++-
.../test/functional/MemoryStarvedMinCIT.java | 4 ++-
.../test/functional/MemoryStarvedScanIT.java | 4 ++-
.../accumulo/test/functional/ProcessMetricsIT.java | 30 ++++++++++++++--------
.../apache/accumulo/test/metrics/MetricsIT.java | 4 +++
7 files changed, 50 insertions(+), 29 deletions(-)
diff --git
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/server_process_common.js
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/server_process_common.js
index c89c658f05..fd53c76b6c 100644
---
a/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/server_process_common.js
+++
b/server/monitor/src/main/resources/org/apache/accumulo/monitor/resources/js/server_process_common.js
@@ -265,7 +265,7 @@ function createDataTable(table, storageKey) {
if (data === null || data === undefined) {
return '—';
}
- data = bigNumberForQuantity(data).toString()+"/s";
+ data = bigNumberForQuantity(data).toString() + "/s";
}
return data;
}
@@ -277,7 +277,7 @@ function createDataTable(table, storageKey) {
if (data === null || data === undefined) {
return '—';
}
- data = bigNumberForSize(data).toString()+"/s";
+ data = bigNumberForSize(data).toString() + "/s";
}
return data;
}
diff --git
a/test/src/main/java/org/apache/accumulo/test/compaction/ClassLoaderContextCompactionIT.java
b/test/src/main/java/org/apache/accumulo/test/compaction/ClassLoaderContextCompactionIT.java
index 9eff081120..8946d2ae83 100644
---
a/test/src/main/java/org/apache/accumulo/test/compaction/ClassLoaderContextCompactionIT.java
+++
b/test/src/main/java/org/apache/accumulo/test/compaction/ClassLoaderContextCompactionIT.java
@@ -53,6 +53,8 @@ import org.apache.accumulo.core.metadata.schema.Ample;
import org.apache.accumulo.core.metadata.schema.TabletMetadata;
import org.apache.accumulo.core.metadata.schema.TabletMetadata.ColumnType;
import org.apache.accumulo.core.metadata.schema.TabletsMetadata;
+import org.apache.accumulo.core.metrics.MetricsInfo;
+import org.apache.accumulo.core.metrics.MetricsUtil;
import org.apache.accumulo.core.spi.metrics.LoggingMeterRegistryFactory;
import org.apache.accumulo.core.util.compaction.ExternalCompactionUtil;
import org.apache.accumulo.core.util.threads.Threads;
@@ -124,6 +126,8 @@ public class ClassLoaderContextCompactionIT extends
AccumuloClusterHarness {
final AtomicLong consecutive = new AtomicLong(0);
final AtomicLong terminations = new AtomicLong(0);
+ final String rgTagValue = MetricsUtil.formatString(GROUP1);
+
final Thread thread = Threads.createNonCriticalThread("metric-tailer", ()
-> {
while (!shutdownTailer.get()) {
List<String> statsDMetrics = sink.getLines();
@@ -133,36 +137,36 @@ public class ClassLoaderContextCompactionIT extends
AccumuloClusterHarness {
}
if (s.startsWith(COMPACTOR_MAJC_CANCELLED.getName())) {
Metric m = TestStatsDSink.parseStatsDMetric(s);
- if (m.getTags().containsKey("resource.group")
- && m.getTags().get("resource.group").equals(GROUP1)) {
+ if (m.getTags().containsKey(MetricsInfo.RESOURCE_GROUP_TAG_KEY)
+ &&
m.getTags().get(MetricsInfo.RESOURCE_GROUP_TAG_KEY).equals(rgTagValue)) {
LOG.info("{}", m);
cancellations.set(Long.parseLong(m.getValue()));
}
} else if (s.startsWith(COMPACTOR_MAJC_COMPLETED.getName())) {
Metric m = TestStatsDSink.parseStatsDMetric(s);
- if (m.getTags().containsKey("resource.group")
- && m.getTags().get("resource.group").equals(GROUP1)) {
+ if (m.getTags().containsKey(MetricsInfo.RESOURCE_GROUP_TAG_KEY)
+ &&
m.getTags().get(MetricsInfo.RESOURCE_GROUP_TAG_KEY).equals(rgTagValue)) {
LOG.info("{}", m);
completions.set(Long.parseLong(m.getValue()));
}
} else if (s.startsWith(COMPACTOR_MAJC_FAILED.getName())) {
Metric m = TestStatsDSink.parseStatsDMetric(s);
- if (m.getTags().containsKey("resource.group")
- && m.getTags().get("resource.group").equals(GROUP1)) {
+ if (m.getTags().containsKey(MetricsInfo.RESOURCE_GROUP_TAG_KEY)
+ &&
m.getTags().get(MetricsInfo.RESOURCE_GROUP_TAG_KEY).equals(rgTagValue)) {
LOG.info("{}", m);
failures.set(Long.parseLong(m.getValue()));
}
} else if
(s.startsWith(COMPACTOR_MAJC_FAILURES_TERMINATION.getName())) {
Metric m = TestStatsDSink.parseStatsDMetric(s);
- if (m.getTags().containsKey("resource.group")
- && m.getTags().get("resource.group").equals(GROUP1)) {
+ if (m.getTags().containsKey(MetricsInfo.RESOURCE_GROUP_TAG_KEY)
+ &&
m.getTags().get(MetricsInfo.RESOURCE_GROUP_TAG_KEY).equals(rgTagValue)) {
LOG.info("{}", m);
terminations.set(Long.parseLong(m.getValue()));
}
} else if
(s.startsWith(COMPACTOR_MAJC_FAILURES_CONSECUTIVE.getName())) {
Metric m = TestStatsDSink.parseStatsDMetric(s);
- if (m.getTags().containsKey("resource.group")
- && m.getTags().get("resource.group").equals(GROUP1)) {
+ if (m.getTags().containsKey(MetricsInfo.RESOURCE_GROUP_TAG_KEY)
+ &&
m.getTags().get(MetricsInfo.RESOURCE_GROUP_TAG_KEY).equals(rgTagValue)) {
LOG.info("{}", m);
consecutive.getAndUpdate(prev -> Math.max(prev,
Long.parseLong(m.getValue())));
}
@@ -243,13 +247,13 @@ public class ClassLoaderContextCompactionIT extends
AccumuloClusterHarness {
== null);
assertEquals(1,
ExternalCompactionUtil.countCompactors(ResourceGroupId.of(GROUP1),
(ClientContext) client));
- Wait.waitFor(() -> failures.get() == 1);
- Wait.waitFor(() -> consecutive.get() == 3);
+ Wait.waitFor(() -> failures.get() > 0);
+ Wait.waitFor(() -> consecutive.get() > 2);
// Three failures have occurred, Compactor should shut down.
Wait.waitFor(() ->
ExternalCompactionUtil.countCompactors(ResourceGroupId.of(GROUP1),
(ClientContext) client) == 0);
- Wait.waitFor(() -> terminations.get() == 1);
+ Wait.waitFor(() -> terminations.get() > 0);
assertEquals(0, cancellations.get());
assertEquals(0, completions.get());
diff --git
a/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java
b/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java
index 531fd30751..9dc30dadf8 100644
---
a/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java
+++
b/test/src/main/java/org/apache/accumulo/test/compaction/ExternalCompactionProgressIT.java
@@ -53,6 +53,7 @@ import org.apache.accumulo.core.data.TableId;
import org.apache.accumulo.core.iterators.IteratorUtil;
import org.apache.accumulo.core.metadata.schema.TabletMetadata;
import org.apache.accumulo.core.metadata.schema.TabletsMetadata;
+import org.apache.accumulo.core.metrics.MetricsUtil;
import org.apache.accumulo.core.util.compaction.RunningCompactionInfo;
import org.apache.accumulo.core.util.threads.Threads;
import org.apache.accumulo.harness.AccumuloClusterHarness;
@@ -193,7 +194,7 @@ public class ExternalCompactionProgressIT extends
AccumuloClusterHarness {
// test off, so only look for metrics from the compactor.
String process = metric.getTags().getOrDefault("process.name",
"none");
if (!metricName.startsWith("accumulo.compaction.entries")
- || !process.equals(ServerId.Type.COMPACTOR.name())) {
+ ||
!process.equals(MetricsUtil.formatString(ServerId.Type.COMPACTOR.name()))) {
continue;
}
int value = Integer.parseInt(metric.getValue());
diff --git
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedMinCIT.java
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedMinCIT.java
index 450bf21548..75602895f3 100644
---
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedMinCIT.java
+++
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedMinCIT.java
@@ -39,6 +39,7 @@ import org.apache.accumulo.core.client.admin.TableOperations;
import org.apache.accumulo.core.client.admin.servers.ServerId;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.metrics.MetricsInfo;
+import org.apache.accumulo.core.metrics.MetricsUtil;
import org.apache.accumulo.harness.MiniClusterConfigurationCallback;
import org.apache.accumulo.harness.SharedMiniClusterBase;
import org.apache.accumulo.minicluster.MemoryUnit;
@@ -99,7 +100,8 @@ public class MemoryStarvedMinCIT extends
SharedMiniClusterBase {
MINC_PAUSED_COUNT.add(val);
} else if (metric.getName().equals(LOW_MEMORY.getName())) {
String process =
metric.getTags().get(MetricsInfo.PROCESS_NAME_TAG_KEY);
- if (process != null &&
process.contains(ServerId.Type.TABLET_SERVER.name())) {
+ if (process != null && process
+
.contains(MetricsUtil.formatString(ServerId.Type.TABLET_SERVER.name()))) {
int val = Integer.parseInt(metric.getValue());
LOW_MEM_DETECTED.set(val);
}
diff --git
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java
index 3a2464fd15..1d9c3c8148 100644
---
a/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java
+++
b/test/src/main/java/org/apache/accumulo/test/functional/MemoryStarvedScanIT.java
@@ -49,6 +49,7 @@ import org.apache.accumulo.core.data.Range;
import org.apache.accumulo.core.data.Value;
import org.apache.accumulo.core.metadata.SystemTables;
import org.apache.accumulo.core.metrics.MetricsInfo;
+import org.apache.accumulo.core.metrics.MetricsUtil;
import org.apache.accumulo.core.spi.metrics.LoggingMeterRegistryFactory;
import org.apache.accumulo.harness.MiniClusterConfigurationCallback;
import org.apache.accumulo.harness.SharedMiniClusterBase;
@@ -121,7 +122,8 @@ public class MemoryStarvedScanIT extends
SharedMiniClusterBase {
SCAN_RETURNED_EARLY.add(val);
} else if (metric.getName().equals(LOW_MEMORY.getName())) {
String process =
metric.getTags().get(MetricsInfo.PROCESS_NAME_TAG_KEY);
- if (process != null &&
process.contains(ServerId.Type.TABLET_SERVER.name())) {
+ if (process != null && process
+
.contains(MetricsUtil.formatString(ServerId.Type.TABLET_SERVER.name()))) {
int val = Integer.parseInt(metric.getValue());
LOW_MEM_DETECTED.set(val);
}
diff --git
a/test/src/main/java/org/apache/accumulo/test/functional/ProcessMetricsIT.java
b/test/src/main/java/org/apache/accumulo/test/functional/ProcessMetricsIT.java
index 20846faf78..06927af3d4 100644
---
a/test/src/main/java/org/apache/accumulo/test/functional/ProcessMetricsIT.java
+++
b/test/src/main/java/org/apache/accumulo/test/functional/ProcessMetricsIT.java
@@ -46,6 +46,7 @@ import org.apache.accumulo.core.client.ScannerBase;
import org.apache.accumulo.core.client.admin.servers.ServerId;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.iterators.IteratorUtil;
+import org.apache.accumulo.core.metrics.MetricsUtil;
import org.apache.accumulo.core.security.Authorizations;
import org.apache.accumulo.core.spi.compaction.RatioBasedCompactionPlanner;
import org.apache.accumulo.harness.MiniClusterConfigurationCallback;
@@ -155,18 +156,21 @@ public class ProcessMetricsIT extends
SharedMiniClusterBase {
Wait.waitFor(() -> {
List<String> statsDMetrics = sink.getLines();
statsDMetrics.stream().filter(line ->
line.startsWith(SERVER_IDLE.getName())).peek(log::info)
- .map(TestStatsDSink::parseStatsDMetric)
- .filter(a ->
a.getTags().get(RESOURCE_GROUP_TAG_KEY).equals(IDLE_RESOURCE_GROUP))
+ .map(TestStatsDSink::parseStatsDMetric).filter(a -> a.getTags()
+
.get(RESOURCE_GROUP_TAG_KEY).equals(MetricsUtil.formatString(IDLE_RESOURCE_GROUP)))
.forEach(a -> {
String processName = a.getTags().get(PROCESS_NAME_TAG_KEY);
int value = Integer.parseInt(a.getValue());
assertTrue(value == 0 || value == 1 || value == -1, "Unexpected
value " + value);
// check that the idle metric was emitted for each
- if (ServerId.Type.TABLET_SERVER.name().equals(processName) &&
value == 1) {
+ if
(MetricsUtil.formatString(ServerId.Type.TABLET_SERVER.name()).equals(processName)
+ && value == 1) {
sawTServer.set(true);
- } else if (ServerId.Type.SCAN_SERVER.name().equals(processName) &&
value == 1) {
+ } else if
(MetricsUtil.formatString(ServerId.Type.SCAN_SERVER.name())
+ .equals(processName) && value == 1) {
sawSServer.set(true);
- } else if (ServerId.Type.COMPACTOR.name().equals(processName) &&
value == 1) {
+ } else if
(MetricsUtil.formatString(ServerId.Type.COMPACTOR.name()).equals(processName)
+ && value == 1) {
sawCompactor.set(true);
}
@@ -193,15 +197,18 @@ public class ProcessMetricsIT extends
SharedMiniClusterBase {
statsDMetrics.stream().filter(line ->
line.startsWith(LOW_MEMORY.getName())).peek(log::info)
.map(TestStatsDSink::parseStatsDMetric).forEach(a -> {
String processName = a.getTags().get(PROCESS_NAME_TAG_KEY);
- if (ServerId.Type.TABLET_SERVER.name().equals(processName)) {
+ if
(MetricsUtil.formatString(ServerId.Type.TABLET_SERVER.name()).equals(processName))
{
sawTServer.set(true);
- } else if (ServerId.Type.SCAN_SERVER.name().equals(processName)) {
+ } else if
(MetricsUtil.formatString(ServerId.Type.SCAN_SERVER.name())
+ .equals(processName)) {
sawSServer.set(true);
- } else if (ServerId.Type.COMPACTOR.name().equals(processName)) {
+ } else if (MetricsUtil.formatString(ServerId.Type.COMPACTOR.name())
+ .equals(processName)) {
sawCompactor.set(true);
- } else if (ServerId.Type.MANAGER.name().equals(processName)) {
+ } else if
(MetricsUtil.formatString(ServerId.Type.MANAGER.name()).equals(processName)) {
sawManager.set(true);
- } else if
(ServerId.Type.GARBAGE_COLLECTOR.name().equals(processName)) {
+ } else if
(MetricsUtil.formatString(ServerId.Type.GARBAGE_COLLECTOR.name())
+ .equals(processName)) {
sawGC.set(true);
}
@@ -300,7 +307,8 @@ public class ProcessMetricsIT extends SharedMiniClusterBase
{
Wait.waitFor(
() -> sink.getLines().stream().filter(line ->
line.startsWith(SERVER_IDLE.getName()))
.map(TestStatsDSink::parseStatsDMetric)
- .filter(a -> a.getTags().get("process.name").equals(processName))
+ .filter(
+ a ->
a.getTags().get("process.name").equals(MetricsUtil.formatString(processName)))
.peek(a -> log.info("Idle metric: {}", a))
.anyMatch(a -> Integer.parseInt(a.getValue()) == expectedValue),
60_000, 2000, "Idle metric did not reach the expected value " +
expectedValue);
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 e764b5c735..255fb463c1 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
@@ -23,6 +23,8 @@ import static
org.apache.accumulo.core.metrics.Metric.COMPACTOR_MAJC_FAILED;
import static
org.apache.accumulo.core.metrics.Metric.COMPACTOR_MAJC_FAILURES_CONSECUTIVE;
import static
org.apache.accumulo.core.metrics.Metric.COMPACTOR_MAJC_FAILURES_TERMINATION;
import static org.apache.accumulo.core.metrics.Metric.COMPACTOR_MAJC_STUCK;
+import static org.apache.accumulo.core.metrics.Metric.EXECUTOR_COMPLETED;
+import static org.apache.accumulo.core.metrics.Metric.EXECUTOR_QUEUED;
import static
org.apache.accumulo.core.metrics.Metric.FATE_OPS_THREADS_INACTIVE;
import static org.apache.accumulo.core.metrics.Metric.FATE_OPS_THREADS_TOTAL;
import static org.apache.accumulo.core.metrics.Metric.FATE_TYPE_IN_PROGRESS;
@@ -160,6 +162,8 @@ public class MetricsIT extends ConfigurableMacBase
implements MetricsProducer {
// add sserver as flaky until scan server included in mini tests.
Set<Metric> flakyMetrics = Set.of(
COMPACTOR_MAJC_STUCK,
+ EXECUTOR_COMPLETED,
+ EXECUTOR_QUEUED,
FATE_TYPE_IN_PROGRESS,
MANAGER_BALANCER_MIGRATIONS_NEEDED,
SCAN_BUSY_TIMEOUT_COUNT,