You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by jl...@apache.org on 2021/02/28 01:47:02 UTC

[incubator-pinot] 01/01: Add mark and count methods in PinotMeter interface

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

jlli pushed a commit to branch add-count-method-in-pinot-meter
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git

commit 0f7bd7805fcf93f351198aabf76b8c5c88691a79
Author: Jack Li(Analytics Engineering) <jl...@jlli-mn1.linkedin.biz>
AuthorDate: Sat Feb 27 17:35:53 2021 -0800

    Add mark and count methods in PinotMeter interface
---
 .../pinot/common/metrics/yammer/YammerMeter.java   | 10 ++++++++++
 .../pinot/common/metrics/MetricsHelperTest.java    | 22 +++++++++++++++++-----
 .../org/apache/pinot/spi/metrics/PinotMeter.java   |  4 ++++
 3 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/pinot-common/src/main/java/org/apache/pinot/common/metrics/yammer/YammerMeter.java b/pinot-common/src/main/java/org/apache/pinot/common/metrics/yammer/YammerMeter.java
index d480b43..92a350b 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/metrics/yammer/YammerMeter.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/metrics/yammer/YammerMeter.java
@@ -31,11 +31,21 @@ public class YammerMeter extends YammerMetered implements PinotMeter {
   }
 
   @Override
+  public void mark() {
+    _meter.mark();
+  }
+
+  @Override
   public void mark(long unitCount) {
     _meter.mark(unitCount);
   }
 
   @Override
+  public long count() {
+    return _meter.count();
+  }
+
+  @Override
   public Object getMetric() {
     return _meter;
   }
diff --git a/pinot-common/src/test/java/org/apache/pinot/common/metrics/MetricsHelperTest.java b/pinot-common/src/test/java/org/apache/pinot/common/metrics/MetricsHelperTest.java
index 5afe60d..24507c9 100644
--- a/pinot-common/src/test/java/org/apache/pinot/common/metrics/MetricsHelperTest.java
+++ b/pinot-common/src/test/java/org/apache/pinot/common/metrics/MetricsHelperTest.java
@@ -18,15 +18,14 @@
  */
 package org.apache.pinot.common.metrics;
 
-import static org.testng.Assert.assertTrue;
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
-
 import org.apache.pinot.common.exception.InvalidConfigException;
+import org.apache.pinot.spi.metrics.PinotMeter;
 import org.apache.pinot.spi.metrics.PinotMetricsRegistry;
 import org.apache.pinot.spi.env.PinotConfiguration;
+import org.testng.Assert;
 import org.testng.annotations.Test;
 
 
@@ -73,7 +72,20 @@ public class MetricsHelperTest {
         TimeUnit.MILLISECONDS, TimeUnit.MILLISECONDS);
 
     // Check that the two listeners fired
-    assertTrue(listenerOneOkay);
-    assertTrue(listenerTwoOkay);
+    Assert.assertTrue(listenerOneOkay);
+    Assert.assertTrue(listenerTwoOkay);
+  }
+
+  @Test
+  public void testMetricValue() {
+    PinotMetricsRegistry registry = PinotMetricUtils.getPinotMetricsRegistry();
+    PinotMeter pinotMeter = MetricsHelper
+        .newMeter(registry, PinotMetricUtils.generatePinotMetricName(MetricsHelperTest.class, "testMeter"), "testMeter",
+            TimeUnit.MILLISECONDS);
+    pinotMeter.mark();
+    Assert.assertEquals(pinotMeter.count(), 1L);
+
+    pinotMeter.mark(2L);
+    Assert.assertEquals(pinotMeter.count(), 3L);
   }
 }
diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/metrics/PinotMeter.java b/pinot-spi/src/main/java/org/apache/pinot/spi/metrics/PinotMeter.java
index f7b9c94..778e32e 100644
--- a/pinot-spi/src/main/java/org/apache/pinot/spi/metrics/PinotMeter.java
+++ b/pinot-spi/src/main/java/org/apache/pinot/spi/metrics/PinotMeter.java
@@ -26,5 +26,9 @@ package org.apache.pinot.spi.metrics;
  */
 public interface PinotMeter {
 
+  void mark();
+
   void mark(final long unitCount);
+
+  long count();
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org