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

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

commit 510cfda7b69efc4491087d94e53db8cc645fd4e9
Merge: 7211081310 38d9da710b
Author: Ed Coleman <edcole...@apache.org>
AuthorDate: Tue May 28 23:30:24 2024 +0000

    Merge remote-tracking branch 'upstream/2.1'

 .../server/metrics/NoOpDistributionSummary.java    | 83 ----------------------
 .../accumulo/server/metrics/NoopMetrics.java       | 79 ++++++++++++++++++++
 .../accumulo/server/metrics/ThriftMetrics.java     |  4 +-
 ...butionSummaryTest.java => NoopMetricsTest.java} | 20 +++++-
 .../accumulo/server/metrics/ThriftMetricsTest.java |  3 +-
 .../apache/accumulo/tserver/ScanServerMetrics.java |  5 +-
 .../tserver/metrics/TabletServerMinCMetrics.java   |  5 +-
 .../tserver/metrics/TabletServerScanMetrics.java   |  9 +--
 .../tserver/metrics/TabletServerUpdateMetrics.java | 10 +--
 .../apache/accumulo/test/metrics/MetricsIT.java    | 16 +++--
 10 files changed, 128 insertions(+), 106 deletions(-)

diff --cc 
server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
index 45cbdc6810,b56bc20b1a..46a3793861
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/ScanServerMetrics.java
@@@ -35,9 -37,9 +36,9 @@@ import io.micrometer.core.instrument.bi
  
  public class ScanServerMetrics implements MetricsProducer {
  
-   private Timer totalReservationTimer;
-   private Timer writeOutReservationTimer;
+   private Timer totalReservationTimer = NoopMetrics.useNoopTimer();
+   private Timer writeOutReservationTimer = NoopMetrics.useNoopTimer();
 -  private Counter busyTimeoutCount = NoopMetrics.useNoopCounter();
 +  private final AtomicLong busyTimeoutCount = new AtomicLong(0);
    private final AtomicLong reservationConflictCount = new AtomicLong(0);
  
    private final LoadingCache<KeyExtent,TabletMetadata> tabletMetadataCache;
diff --cc 
server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
index 5ca15c5c9b,c2c8dd0d32..ea246c1c72
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerScanMetrics.java
@@@ -24,10 -23,10 +24,10 @@@ import java.util.concurrent.atomic.Atom
  import java.util.concurrent.atomic.LongAdder;
  
  import org.apache.accumulo.core.metrics.MetricsProducer;
- import org.apache.accumulo.server.metrics.NoOpDistributionSummary;
+ import org.apache.accumulo.server.metrics.NoopMetrics;
  
 -import io.micrometer.core.instrument.Counter;
  import io.micrometer.core.instrument.DistributionSummary;
 +import io.micrometer.core.instrument.FunctionCounter;
  import io.micrometer.core.instrument.Gauge;
  import io.micrometer.core.instrument.MeterRegistry;
  import io.micrometer.core.instrument.Timer;
@@@ -35,15 -34,13 +35,16 @@@
  public class TabletServerScanMetrics implements MetricsProducer {
  
    private final AtomicInteger openFiles = new AtomicInteger(0);
-   private Timer scans;
-   private DistributionSummary resultsPerScan = new NoOpDistributionSummary();
-   private DistributionSummary yields = new NoOpDistributionSummary();
++
+   private Timer scans = NoopMetrics.useNoopTimer();
+   private DistributionSummary resultsPerScan = 
NoopMetrics.useNoopDistributionSummary();
+   private DistributionSummary yields = 
NoopMetrics.useNoopDistributionSummary();
 -  private Counter startScanCalls = NoopMetrics.useNoopCounter();
 -  private Counter continueScanCalls = NoopMetrics.useNoopCounter();;
 -  private Counter closeScanCalls = NoopMetrics.useNoopCounter();;
 -  private Counter busyTimeoutCount = NoopMetrics.useNoopCounter();;
 +  private final AtomicLong startScanCalls = new AtomicLong(0);
 +  private final AtomicLong continueScanCalls = new AtomicLong(0);
 +  private final AtomicLong closeScanCalls = new AtomicLong(0);
 +  private final AtomicLong busyTimeoutCount = new AtomicLong(0);
 +  private final AtomicLong pausedForMemory = new AtomicLong(0);
 +  private final AtomicLong earlyReturnForMemory = new AtomicLong(0);
  
    private final LongAdder lookupCount = new LongAdder();
    private final LongAdder queryResultCount = new LongAdder();
diff --cc 
server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
index 6dbce396b1,a369458b6c..1c30517e32
--- 
a/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
+++ 
b/server/tserver/src/main/java/org/apache/accumulo/tserver/metrics/TabletServerUpdateMetrics.java
@@@ -19,28 -19,27 +19,28 @@@
  package org.apache.accumulo.tserver.metrics;
  
  import java.time.Duration;
 +import java.util.concurrent.atomic.AtomicLong;
  
  import org.apache.accumulo.core.metrics.MetricsProducer;
- import org.apache.accumulo.server.metrics.NoOpDistributionSummary;
+ import org.apache.accumulo.server.metrics.NoopMetrics;
  
 -import io.micrometer.core.instrument.Counter;
  import io.micrometer.core.instrument.DistributionSummary;
 +import io.micrometer.core.instrument.FunctionCounter;
  import io.micrometer.core.instrument.MeterRegistry;
  import io.micrometer.core.instrument.Timer;
  
  public class TabletServerUpdateMetrics implements MetricsProducer {
  
 -  private Counter permissionErrorsCounter = NoopMetrics.useNoopCounter();
 -  private Counter unknownTabletErrorsCounter = NoopMetrics.useNoopCounter();
 -  private Counter constraintViolationsCounter = NoopMetrics.useNoopCounter();
 +  private final AtomicLong permissionErrorsCount = new AtomicLong();
 +  private final AtomicLong unknownTabletErrorsCount = new AtomicLong();
 +  private final AtomicLong constraintViolationsCount = new AtomicLong();
-   private Timer commitPrepStat;
-   private Timer walogWriteTimeStat;
-   private Timer commitTimeStat;
-   private DistributionSummary mutationArraySizeStat = new 
NoOpDistributionSummary();
+   private Timer commitPrepStat = NoopMetrics.useNoopTimer();
 -  private Timer walogWriteTimeStat = NoopMetrics.useNoopTimer();;
 -  private Timer commitTimeStat = NoopMetrics.useNoopTimer();;
++  private Timer walogWriteTimeStat = NoopMetrics.useNoopTimer();
++  private Timer commitTimeStat = NoopMetrics.useNoopTimer();
+   private DistributionSummary mutationArraySizeStat = 
NoopMetrics.useNoopDistributionSummary();
  
    public void addPermissionErrors(long value) {
 -    permissionErrorsCounter.increment(value);
 +    permissionErrorsCount.addAndGet(value);
    }
  
    public void addUnknownTabletErrors(long value) {
diff --cc test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java
index 7667f84207,f0b53992b4..36c55f4d1a
--- a/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/metrics/MetricsIT.java
@@@ -98,13 -98,22 +98,19 @@@ public class MetricsIT extends Configur
  
      doWorkToGenerateMetrics();
      cluster.stop();
+     // meter names sorted and formatting disabled to make it easier to diff 
changes
+     // @formatter:off
 -    Set<String> unexpectedMetrics =
 -            Set.of(METRICS_COMPACTOR_MAJC_STUCK,
 -                    METRICS_REPLICATION_QUEUE,
 -                    METRICS_SCAN_YIELDS,
 -                    METRICS_UPDATE_ERRORS);
++    Set<String> unexpectedMetrics = Set.of(METRICS_COMPACTOR_MAJC_STUCK,
++                    METRICS_SCAN_YIELDS);
  
-     Set<String> unexpectedMetrics = Set.of(METRICS_COMPACTOR_MAJC_STUCK, 
METRICS_SCAN_YIELDS);
      // add sserver as flaky until scan server included in mini tests.
-     Set<String> flakyMetrics = Set.of(METRICS_FATE_TYPE_IN_PROGRESS, 
METRICS_GC_WAL_ERRORS,
-         METRICS_SCAN_BUSY_TIMEOUT_COUNTER, 
METRICS_SCAN_RESERVATION_CONFLICT_COUNTER,
-         METRICS_SCAN_RESERVATION_TOTAL_TIMER, 
METRICS_SCAN_RESERVATION_WRITEOUT_TIMER,
-         METRICS_SCAN_TABLET_METADATA_CACHE);
+     Set<String> flakyMetrics = Set.of(METRICS_FATE_TYPE_IN_PROGRESS,
+             METRICS_SCAN_BUSY_TIMEOUT_COUNTER,
+             METRICS_SCAN_RESERVATION_CONFLICT_COUNTER,
+             METRICS_SCAN_RESERVATION_TOTAL_TIMER,
+             METRICS_SCAN_RESERVATION_WRITEOUT_TIMER,
+             METRICS_SCAN_TABLET_METADATA_CACHE);
+     // @formatter:on
  
      Map<String,String> expectedMetricNames = this.getMetricFields();
      flakyMetrics.forEach(expectedMetricNames::remove); // might not see these

Reply via email to