You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2021/04/13 06:11:49 UTC

[ignite] branch master updated: IGNITE-14428 Formalizes the names of the metrics included in the metric registry (#8937)

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

nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 1ce1a19  IGNITE-14428 Formalizes the names of the metrics included in the metric registry (#8937)
1ce1a19 is described below

commit 1ce1a19ff5869194608b7cfb17460163d266a67f
Author: Mikhail Petrov <32...@users.noreply.github.com>
AuthorDate: Tue Apr 13 09:11:15 2021 +0300

    IGNITE-14428 Formalizes the names of the metrics included in the metric registry (#8937)
---
 .../internal/processors/metric/MetricRegistry.java     |  8 ++++++--
 .../discovery/tcp/internal/TcpDiscoveryStatistics.java | 12 ++++++++----
 .../apache/ignite/internal/metric/MetricsSelfTest.java | 14 ++++++++++++--
 .../zk/internal/ZookeeperDiscoveryStatistics.java      | 18 +++++++++++++-----
 4 files changed, 39 insertions(+), 13 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java
index 4604b40..36b3a1d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/metric/MetricRegistry.java
@@ -49,6 +49,7 @@ import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
 import static org.apache.ignite.internal.processors.metric.impl.HitRateMetric.DFLT_SIZE;
+import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.fromFullName;
 import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
 import static org.apache.ignite.internal.util.lang.GridFunc.nonThrowableSupplier;
 
@@ -115,12 +116,15 @@ public class MetricRegistry implements ReadOnlyMetricRegistry {
     }
 
     /**
-     * Register existing metrics in this group with the specified name.
+     * Register existing metrics in this group with the specified name. Note that the name of the metric must
+     * start with the name of the current registry it is registered into.
      *
      * @param metric Metric.
      */
     public void register(Metric metric) {
-        addMetric(metric.name(), metric);
+        assert fromFullName(metric.name()).get1().equals(regName);
+
+        addMetric(fromFullName(metric.name()).get2(), metric);
     }
 
     /**
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
index 7cb52d1..27197a7 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryStatistics.java
@@ -30,6 +30,9 @@ import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractMessage;
 
+import static org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.DISCO_METRICS;
+import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
+
 /**
  * Statistics for {@link org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi}.
  */
@@ -72,13 +75,14 @@ public class TcpDiscoveryStatistics {
 
     /** */
     public TcpDiscoveryStatistics() {
-        joinedNodesCnt = new IntMetricImpl("JoinedNodes", "Joined nodes count");
+        joinedNodesCnt = new IntMetricImpl(metricName(DISCO_METRICS, "JoinedNodes"), "Joined nodes count");
 
-        failedNodesCnt = new IntMetricImpl("FailedNodes", "Failed nodes count");
+        failedNodesCnt = new IntMetricImpl(metricName(DISCO_METRICS, "FailedNodes"), "Failed nodes count");
 
-        leftNodesCnt = new IntMetricImpl("LeftNodes", "Left nodes count");
+        leftNodesCnt = new IntMetricImpl(metricName(DISCO_METRICS, "LeftNodes"), "Left nodes count");
 
-        pendingMsgsRegistered = new IntMetricImpl("PendingMessagesRegistered", "Pending messages registered count");
+        pendingMsgsRegistered = new IntMetricImpl(metricName(DISCO_METRICS, "PendingMessagesRegistered"),
+            "Pending messages registered count");
     }
 
     /**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java
index 4ac203d..6a95bef 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/metric/MetricsSelfTest.java
@@ -57,6 +57,8 @@ import static java.util.Arrays.asList;
 import static java.util.stream.Collectors.toSet;
 import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.fromFullName;
 import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.histogramBucketNames;
+import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
+import static org.apache.ignite.testframework.GridTestUtils.assertThrowsWithCause;
 import static org.apache.ignite.testframework.GridTestUtils.runAsync;
 import static org.junit.Assert.assertArrayEquals;
 
@@ -130,15 +132,23 @@ public class MetricsSelfTest extends GridCommonAbstractTest {
     /** */
     @Test
     public void testRegister() throws Exception {
-        AtomicLongMetric l = new AtomicLongMetric("rtest", "test");
+        String mName = "rtest";
+
+        AtomicLongMetric l = new AtomicLongMetric(metricName(mreg.name(), mName), "test");
 
         mreg.register(l);
 
-        assertEquals(l, mreg.findMetric("rtest"));
+        assertEquals(l, mreg.findMetric(mName));
 
         l.reset();
 
         assertEquals(0, l.value());
+
+        assertThrowsWithCause(() -> mreg.register(new AtomicLongMetric(mName, "")),
+            StringIndexOutOfBoundsException.class);
+
+        assertThrowsWithCause(() -> mreg.register(new AtomicLongMetric(metricName("mreg", mName), "")),
+            AssertionError.class);
     }
 
     /** */
diff --git a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryStatistics.java b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryStatistics.java
index faf00d6..3226e77 100644
--- a/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryStatistics.java
+++ b/modules/zookeeper/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryStatistics.java
@@ -21,24 +21,32 @@ import org.apache.ignite.internal.processors.metric.impl.AtomicLongMetric;
 import org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
 import org.apache.ignite.internal.util.typedef.internal.S;
 
+import static org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.DISCO_METRICS;
+import static org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
+
 /**
  * Zookeeper discovery statistics.
  */
 public class ZookeeperDiscoveryStatistics {
     /** */
-    private final LongAdderMetric joinedNodesCnt = new LongAdderMetric("JoinedNodes", "Joined nodes count");
+    private final LongAdderMetric joinedNodesCnt = new LongAdderMetric(metricName(DISCO_METRICS, "JoinedNodes"),
+        "Joined nodes count");
 
     /** */
-    private final LongAdderMetric failedNodesCnt = new LongAdderMetric("FailedNodes", "Failed nodes count");
+    private final LongAdderMetric failedNodesCnt = new LongAdderMetric(metricName(DISCO_METRICS, "FailedNodes"),
+        "Failed nodes count");
 
     /** */
-    private final LongAdderMetric leftNodesCnt = new LongAdderMetric("LeftNodes", "Left nodes count");
+    private final LongAdderMetric leftNodesCnt = new LongAdderMetric(metricName(DISCO_METRICS, "LeftNodes"),
+        "Left nodes count");
 
     /** Communication error count. */
-    private final LongAdderMetric commErrCnt = new LongAdderMetric("CommunicationErrors", "Communication errors count");
+    private final LongAdderMetric commErrCnt = new LongAdderMetric(metricName(DISCO_METRICS, "CommunicationErrors"),
+        "Communication errors count");
 
     /** Current topology version */
-    private final AtomicLongMetric topVer = new AtomicLongMetric("CurrentTopologyVersion", "Current topology version");
+    private final AtomicLongMetric topVer = new AtomicLongMetric(metricName(DISCO_METRICS, "CurrentTopologyVersion"),
+        "Current topology version");
 
     /**
      * @param discoReg Discovery metric registry.