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

ppa pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 480d5e000f IGNITE-21726 Enable all metrics by default (#3914)
480d5e000f is described below

commit 480d5e000f3aed322399b12916bc16240b956176
Author: Pavel Pereslegin <[email protected]>
AuthorDate: Fri Jun 14 17:00:09 2024 +0300

    IGNITE-21726 Enable all metrics by default (#3914)
---
 .../ignite/internal/cli/CliIntegrationTest.java    | 12 ++++++++
 .../cli/call/metric/ItEnabledMetricCallsTest.java  | 20 ++++++++-----
 .../cli/call/metric/ItMetricCallsTest.java         | 34 +++++++++++++---------
 .../metric/ItEnabledNodeMetricCommandTest.java     | 19 ++++++++----
 .../commands/metric/ItNodeMetricCommandTest.java   |  8 ++---
 .../internal/rest/ItGeneratedRestClientTest.java   | 16 ++++------
 .../ignite/client/handler/ClientHandlerModule.java |  2 +-
 .../ClientConnectorConfigurationSchema.java        |  2 +-
 .../metastorage/impl/MetaStorageManagerImpl.java   |  1 +
 .../java/org/apache/ignite/internal/raft/Loza.java |  1 +
 .../org/apache/ignite/internal/app/IgniteImpl.java |  9 ++++--
 .../internal/sql/api/ItSqlClientMetricsTest.java   | 26 ++++++++---------
 .../internal/sql/engine/SqlQueryProcessor.java     |  1 +
 .../sql/engine/prepare/PrepareServiceImpl.java     |  1 +
 .../sql/metrics/PlanningCacheMetricsTest.java      | 28 +++++++++---------
 .../disaster/DisasterRecoveryManager.java          |  1 +
 16 files changed, 108 insertions(+), 73 deletions(-)

diff --git 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/CliIntegrationTest.java
 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/CliIntegrationTest.java
index 0f657fccc9..95a6c61e18 100644
--- 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/CliIntegrationTest.java
+++ 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/CliIntegrationTest.java
@@ -44,6 +44,7 @@ import 
org.apache.ignite.internal.cli.core.repl.registry.JdbcUrlRegistry;
 import org.apache.ignite.internal.cli.core.repl.registry.NodeNameRegistry;
 import org.apache.ignite.internal.cli.event.EventPublisher;
 import org.apache.ignite.internal.cli.event.Events;
+import org.apache.ignite.rest.client.model.MetricSource;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
@@ -54,6 +55,17 @@ import picocli.CommandLine;
  */
 @MicronautTest(rebuildContext = true)
 public abstract class CliIntegrationTest extends 
ClusterPerClassIntegrationTest {
+
+    public static final MetricSource[] ALL_METRIC_SOURCES = {
+            new MetricSource().name("jvm").enabled(true),
+            new MetricSource().name("os").enabled(true),
+            new MetricSource().name("raft").enabled(true),
+            new MetricSource().name("metastorage").enabled(true),
+            new MetricSource().name("client.handler").enabled(true),
+            new MetricSource().name("sql.client").enabled(true),
+            new MetricSource().name("sql.plan.cache").enabled(true)
+    };
+
     /** Correct ignite jdbc url. */
     protected static final String JDBC_URL = "jdbc:ignite:thin://127.0.0.1:" + 
Cluster.BASE_CLIENT_PORT;
 
diff --git 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItEnabledMetricCallsTest.java
 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItEnabledMetricCallsTest.java
index 212730dac9..365377c68a 100644
--- 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItEnabledMetricCallsTest.java
+++ 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItEnabledMetricCallsTest.java
@@ -21,6 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertAll;
 
 import jakarta.inject.Inject;
+import java.util.Arrays;
 import java.util.List;
 import org.apache.ignite.internal.cli.CliIntegrationTest;
 import org.apache.ignite.internal.cli.call.node.metric.NodeMetricSetListCall;
@@ -51,13 +52,18 @@ class ItEnabledMetricCallsTest extends CliIntegrationTest {
 
     @BeforeAll
     void beforeAll() {
-        var inputEnable = NodeMetricSourceEnableCallInput.builder()
-                .endpointUrl(NODE_URL)
-                .srcName("jvm")
-                .enable(true)
-                .build();
-
-        nodeMetricSourceEnableCall.execute(inputEnable);
+        // Disable all metrics except "jvm".
+        
Arrays.stream(ALL_METRIC_SOURCES).map(MetricSource::getName).forEach(name -> {
+            if ("jvm".equals(name)) {
+                return;
+            }
+
+            
nodeMetricSourceEnableCall.execute(NodeMetricSourceEnableCallInput.builder()
+                    .endpointUrl(NODE_URL)
+                    .srcName(name)
+                    .enable(false)
+                    .build());
+        });
     }
 
     @Test
diff --git 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItMetricCallsTest.java
 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItMetricCallsTest.java
index 98b1d0f4a3..b9267a0cde 100644
--- 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItMetricCallsTest.java
+++ 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/call/metric/ItMetricCallsTest.java
@@ -21,6 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import jakarta.inject.Inject;
 import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.ignite.internal.cli.CliIntegrationTest;
 import org.apache.ignite.internal.cli.call.node.metric.NodeMetricSetListCall;
 import 
org.apache.ignite.internal.cli.call.node.metric.NodeMetricSourceEnableCall;
@@ -47,7 +48,7 @@ class ItMetricCallsTest extends CliIntegrationTest {
     NodeMetricSourceEnableCall nodeMetricSourceEnableCall;
 
     @Test
-    @DisplayName("Should display disabled jvm node metric source when cluster 
is up and running")
+    @DisplayName("Should display metric sources when cluster is up and 
running")
     void nodeMetricSourcesList() {
         // When
         CallOutput<List<MetricSource>> output = 
nodeMetricSourceListCall.execute(urlInput);
@@ -55,28 +56,33 @@ class ItMetricCallsTest extends CliIntegrationTest {
         // Then
         assertThat(output.hasError()).isFalse();
 
-        MetricSource[] expectedMetricSources = {
-                new MetricSource().name("jvm").enabled(false),
-                new MetricSource().name("client.handler").enabled(false),
-                new MetricSource().name("sql.client").enabled(false),
-                new MetricSource().name("sql.plan.cache").enabled(false)
-        };
-
         // And
-        assertThat(output.body()).contains(expectedMetricSources);
+        assertThat(output.body()).contains(ALL_METRIC_SOURCES);
+        assertThat(output.body()).hasSize(ALL_METRIC_SOURCES.length);
     }
 
     @Test
-    @DisplayName("Should display empty node metric sets list when cluster is 
up and running")
-    void nodeMetricSetsListEmpty() {
+    @DisplayName("Should display metric sets when cluster is up and running")
+    void nodeMetricSetsListContainsAllMetrics() {
         // When
-        CallOutput<List<MetricSet>> output = 
nodeMetricSetListCall.execute(urlInput);
+        CallOutput<List<MetricSet>> metricSetsOutput = 
nodeMetricSetListCall.execute(urlInput);
+        CallOutput<List<MetricSource>> metricSourcesOutput = 
nodeMetricSourceListCall.execute(urlInput);
 
         // Then
-        assertThat(output.hasError()).isFalse();
+        assertThat(metricSetsOutput.hasError()).isFalse();
+        assertThat(metricSourcesOutput.hasError()).isFalse();
 
         // And
-        assertThat(output.body()).isEmpty();
+        List<String> allMetricsSource =
+                
metricSourcesOutput.body().stream().map(MetricSource::getName).collect(Collectors.toList());
+        List<String> enabledMetrics =
+                
metricSetsOutput.body().stream().map(MetricSet::getName).collect(Collectors.toList());
+
+        assertThat(allMetricsSource).isNotEmpty();
+        assertThat(enabledMetrics).isNotEmpty();
+
+        // Since all metrics are enabled by default, we must observe metric 
sets from all metric sources.
+        assertThat(enabledMetrics).containsAll(allMetricsSource);
     }
 
     @Test
diff --git 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItEnabledNodeMetricCommandTest.java
 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItEnabledNodeMetricCommandTest.java
index 1084124654..aeb73ded5a 100644
--- 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItEnabledNodeMetricCommandTest.java
+++ 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItEnabledNodeMetricCommandTest.java
@@ -20,9 +20,11 @@ package org.apache.ignite.internal.cli.commands.metric;
 import static org.junit.jupiter.api.Assertions.assertAll;
 
 import jakarta.inject.Inject;
+import java.util.Arrays;
 import org.apache.ignite.internal.cli.CliIntegrationTest;
 import 
org.apache.ignite.internal.cli.call.node.metric.NodeMetricSourceEnableCall;
 import 
org.apache.ignite.internal.cli.call.node.metric.NodeMetricSourceEnableCallInput;
+import org.apache.ignite.rest.client.model.MetricSource;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
@@ -37,13 +39,18 @@ class ItEnabledNodeMetricCommandTest extends 
CliIntegrationTest {
 
     @BeforeAll
     void beforeAll() {
-        var inputEnable = NodeMetricSourceEnableCallInput.builder()
-                .endpointUrl(NODE_URL)
-                .srcName("jvm")
-                .enable(true)
-                .build();
+        // Disable all metrics except "jvm".
+        
Arrays.stream(ALL_METRIC_SOURCES).map(MetricSource::getName).forEach(name -> {
+            if ("jvm".equals(name)) {
+                return;
+            }
 
-        nodeMetricSourceEnableCall.execute(inputEnable);
+            
nodeMetricSourceEnableCall.execute(NodeMetricSourceEnableCallInput.builder()
+                    .endpointUrl(NODE_URL)
+                    .srcName(name)
+                    .enable(false)
+                    .build());
+        });
     }
 
     @Test
diff --git 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItNodeMetricCommandTest.java
 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItNodeMetricCommandTest.java
index ae7352a209..c55ebebab9 100644
--- 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItNodeMetricCommandTest.java
+++ 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/cli/commands/metric/ItNodeMetricCommandTest.java
@@ -38,10 +38,10 @@ class ItNodeMetricCommandTest extends CliIntegrationTest {
                 this::assertExitCodeIsZero,
                 this::assertErrOutputIsEmpty,
                 () -> assertOutputContains("Set name\tEnabled" + NL),
-                () -> assertOutputContains("jvm\tdisabled" + NL),
-                () -> assertOutputContains("client.handler\tdisabled" + NL),
-                () -> assertOutputContains("sql.client\tdisabled" + NL),
-                () -> assertOutputContains("sql.plan.cache\tdisabled" + NL)
+                () -> assertOutputContains("jvm\tenabled" + NL),
+                () -> assertOutputContains("client.handler\tenabled" + NL),
+                () -> assertOutputContains("sql.client\tenabled" + NL),
+                () -> assertOutputContains("sql.plan.cache\tenabled" + NL)
         );
     }
 
diff --git 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/rest/ItGeneratedRestClientTest.java
 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/rest/ItGeneratedRestClientTest.java
index 87850faae1..db5b738bae 100644
--- 
a/modules/cli/src/integrationTest/java/org/apache/ignite/internal/rest/ItGeneratedRestClientTest.java
+++ 
b/modules/cli/src/integrationTest/java/org/apache/ignite/internal/rest/ItGeneratedRestClientTest.java
@@ -53,8 +53,10 @@ import java.util.stream.IntStream;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgnitionManager;
 import org.apache.ignite.InitParameters;
+import org.apache.ignite.internal.cli.CliIntegrationTest;
 import org.apache.ignite.internal.cli.call.cluster.unit.DeployUnitClient;
 import org.apache.ignite.internal.cli.core.rest.ApiClientFactory;
+import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
 import org.apache.ignite.internal.testframework.TestIgnitionManager;
 import org.apache.ignite.internal.testframework.WorkDirectory;
 import org.apache.ignite.internal.testframework.WorkDirectoryExtension;
@@ -71,7 +73,6 @@ import org.apache.ignite.rest.client.invoker.ApiException;
 import org.apache.ignite.rest.client.model.ClusterState;
 import org.apache.ignite.rest.client.model.DeployMode;
 import org.apache.ignite.rest.client.model.InitCommand;
-import org.apache.ignite.rest.client.model.MetricSource;
 import org.apache.ignite.rest.client.model.NodeState;
 import org.apache.ignite.rest.client.model.Problem;
 import org.apache.ignite.rest.client.model.UnitStatus;
@@ -90,7 +91,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
 @ExtendWith(WorkDirectoryExtension.class)
 @MicronautTest(rebuildContext = true)
 @TestInstance(Lifecycle.PER_CLASS)
-public class ItGeneratedRestClientTest {
+public class ItGeneratedRestClientTest extends BaseIgniteAbstractTest {
     /** Start network port for test nodes. */
     private static final int BASE_PORT = 3344;
 
@@ -366,19 +367,12 @@ public class ItGeneratedRestClientTest {
 
     @Test
     void nodeMetricSourcesList() throws ApiException {
-        MetricSource[] expectedMetricSources = {
-                new MetricSource().name("jvm").enabled(false),
-                new MetricSource().name("client.handler").enabled(false),
-                new MetricSource().name("sql.client").enabled(false),
-                new MetricSource().name("sql.plan.cache").enabled(false)
-        };
-
-        assertThat(nodeMetricApi.listNodeMetricSources(), 
hasItems(expectedMetricSources));
+        assertThat(nodeMetricApi.listNodeMetricSources(), 
hasItems(CliIntegrationTest.ALL_METRIC_SOURCES));
     }
 
     @Test
     void nodeMetricSetsList() throws ApiException {
-        assertThat(nodeMetricApi.listNodeMetricSets(), empty());
+        assertThat(nodeMetricApi.listNodeMetricSets(), 
hasSize(CliIntegrationTest.ALL_METRIC_SOURCES.length));
     }
 
     @Test
diff --git 
a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
 
b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
index d7cebbd46b..2c8fa31e5f 100644
--- 
a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
+++ 
b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientHandlerModule.java
@@ -209,7 +209,7 @@ public class ClientHandlerModule implements IgniteComponent 
{
 
         metricManager.registerSource(metrics);
         if (configuration.metricsEnabled()) {
-            metrics.enable();
+            metricManager.enable(metrics);
         }
 
         primaryReplicaTracker.start();
diff --git 
a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientConnectorConfigurationSchema.java
 
b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientConnectorConfigurationSchema.java
index 7ef0a94351..d7a527ec05 100644
--- 
a/modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientConnectorConfigurationSchema.java
+++ 
b/modules/client-handler/src/main/java/org/apache/ignite/client/handler/configuration/ClientConnectorConfigurationSchema.java
@@ -61,5 +61,5 @@ public class ClientConnectorConfigurationSchema {
 
     /** Metrics. */
     @Value(hasDefault = true)
-    public final boolean metricsEnabled = false;
+    public final boolean metricsEnabled = true;
 }
diff --git 
a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
 
b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
index 01f87b37a5..3345836569 100644
--- 
a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
+++ 
b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/impl/MetaStorageManagerImpl.java
@@ -426,6 +426,7 @@ public class MetaStorageManagerImpl implements 
MetaStorageManager {
                 });
 
         metricManager.registerSource(metaStorageMetricSource);
+        metricManager.enable(metaStorageMetricSource);
 
         return nullCompletedFuture();
     }
diff --git 
a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java 
b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
index 51a0f00792..2ec15c6058 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/Loza.java
@@ -170,6 +170,7 @@ public class Loza implements RaftManager {
         var stripeSource = new 
RaftMetricSource(raftConfiguration.value().stripes(), 
raftConfiguration.value().logStripesCount());
 
         metricManager.registerSource(stripeSource);
+        metricManager.enable(stripeSource);
 
         opts.setRaftMetrics(stripeSource);
         
opts.setRpcInstallSnapshotTimeout(raftConfig.rpcInstallSnapshotTimeout());
diff --git 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
index 3dcb14104f..0ba39c72d4 100644
--- 
a/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
+++ 
b/modules/runner/src/main/java/org/apache/ignite/internal/app/IgniteImpl.java
@@ -1051,8 +1051,13 @@ public class IgniteImpl implements Ignite {
         ComponentContext componentContext = new 
ComponentContext(startupExecutor);
 
         try {
-            metricManager.registerSource(new JvmMetricSource());
-            metricManager.registerSource(new OsMetricSource());
+            JvmMetricSource jvmMetrics = new JvmMetricSource();
+            metricManager.registerSource(jvmMetrics);
+            metricManager.enable(jvmMetrics);
+
+            OsMetricSource osMetrics = new OsMetricSource();
+            metricManager.registerSource(osMetrics);
+            metricManager.enable(osMetrics);
 
             lifecycleManager.startComponent(longJvmPauseDetector, 
componentContext);
 
diff --git 
a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlClientMetricsTest.java
 
b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlClientMetricsTest.java
index d949604ad9..bc567656f2 100644
--- 
a/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlClientMetricsTest.java
+++ 
b/modules/sql-engine/src/integrationTest/java/org/apache/ignite/internal/sql/api/ItSqlClientMetricsTest.java
@@ -44,25 +44,23 @@ import org.junit.jupiter.api.function.Executable;
 public class ItSqlClientMetricsTest extends BaseSqlIntegrationTest {
     private MetricManager metricManager;
     private IgniteSql sql;
-    private MetricSet clientMetricSet;
 
     @BeforeAll
     void beforeAll() {
         metricManager = queryProcessor().metricManager();
         sql = igniteSql();
-        clientMetricSet = metricManager.enable(SqlClientMetricSource.NAME);
 
         createAndPopulateTable();
     }
 
     @BeforeEach
     void beforeEach() throws Exception {
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
     }
 
     @AfterEach
     void afterEach() throws Exception {
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
     }
 
     @Override
@@ -75,7 +73,7 @@ public class ItSqlClientMetricsTest extends 
BaseSqlIntegrationTest {
         sql.execute(null, "SELECT * from " + DEFAULT_TABLE_NAME);
 
         // default pageSize greater than number of rows in a table, thus 
cursor will be closed immediately
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
 
         Statement statement = sql.statementBuilder()
                 .query("SELECT * from " + DEFAULT_TABLE_NAME)
@@ -84,20 +82,20 @@ public class ItSqlClientMetricsTest extends 
BaseSqlIntegrationTest {
 
         ResultSet<SqlRow> rs1 = sql.execute(null, statement);
 
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 1);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 1);
         rs1.forEachRemaining(c -> {});
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
 
         ResultSet<SqlRow> rs2 = sql.execute(null, statement);
         ResultSet<SqlRow> rs3 = sql.execute(null, statement);
 
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 2);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 2);
 
         rs2.close();
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 1);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 1);
 
         rs3.close();
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
     }
 
     private static void assertInternalSqlException(String expectedText, 
Executable executable) {
@@ -111,13 +109,15 @@ public class ItSqlClientMetricsTest extends 
BaseSqlIntegrationTest {
                 Sql.STMT_PARSE_ERR,
                 "Failed to parse query",
                 () -> sql.execute(null, "SELECT * ODINfrom " + 
DEFAULT_TABLE_NAME));
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
 
         assertInternalSqlException("Column 'A' not found in any table", () -> 
sql.execute(null, "SELECT a from " + DEFAULT_TABLE_NAME));
-        assertMetricValue(clientMetricSet, 
SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
+        assertMetricValue(SqlClientMetricSource.METRIC_OPEN_CURSORS, 0);
     }
 
-    private void assertMetricValue(MetricSet metricSet, String metricName, 
Object expectedValue) throws InterruptedException {
+    private void assertMetricValue(String metricName, Object expectedValue) 
throws InterruptedException {
+        MetricSet metricSet = 
metricManager.metricSnapshot().get1().get(SqlClientMetricSource.NAME);
+
         assertTrue(
                 waitForCondition(
                         () -> 
expectedValue.toString().equals(metricSet.get(metricName).getValueAsString()),
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
index 3f52ec6837..8daf6897dd 100644
--- 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/SqlQueryProcessor.java
@@ -287,6 +287,7 @@ public class SqlQueryProcessor implements QueryProcessor {
 
         SqlClientMetricSource sqlClientMetricSource = new 
SqlClientMetricSource(openedCursors::size);
         metricManager.registerSource(sqlClientMetricSource);
+        metricManager.enable(sqlClientMetricSource);
 
         var prepareSvc = registerService(PrepareServiceImpl.create(
                 nodeName,
diff --git 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
index c527a59b35..e3519f1e2d 100644
--- 
a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
+++ 
b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImpl.java
@@ -196,6 +196,7 @@ public class PrepareServiceImpl implements PrepareService {
         planningPool.allowCoreThreadTimeOut(true);
 
         metricManager.registerSource(sqlPlanCacheMetricSource);
+        metricManager.enable(sqlPlanCacheMetricSource);
 
         IgnitePlanner.warmup();
     }
diff --git 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/metrics/PlanningCacheMetricsTest.java
 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/metrics/PlanningCacheMetricsTest.java
index d302eedff5..bf83880748 100644
--- 
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/metrics/PlanningCacheMetricsTest.java
+++ 
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/metrics/PlanningCacheMetricsTest.java
@@ -45,9 +45,10 @@ import org.junit.jupiter.api.Test;
  */
 public class PlanningCacheMetricsTest extends AbstractPlannerTest {
 
+    private final MetricManager metricManager = new MetricManagerImpl();
+
     @Test
     public void plannerCacheStatisticsTest() throws Exception {
-        MetricManager metricManager = new MetricManagerImpl();
         // Run clean up tasks in the current thread, so no eviction event is 
delayed.
         CacheFactory cacheFactory = CaffeineCacheFactory.create(Runnable::run);
 
@@ -66,29 +67,27 @@ public class PlanningCacheMetricsTest extends 
AbstractPlannerTest {
 
         prepareService.start();
 
-        MetricSet metricSet = 
metricManager.enable(SqlPlanCacheMetricSource.NAME);
-
         try {
-            checkCachePlanStatistics("SELECT * FROM T", prepareService, 
metricSet, 0, 2);
-            checkCachePlanStatistics("SELECT * FROM T", prepareService, 
metricSet, 1, 2);
+            checkCachePlanStatistics("SELECT * FROM T", prepareService, 0, 2);
+            checkCachePlanStatistics("SELECT * FROM T", prepareService, 1, 2);
 
-            checkCachePlanStatistics("SELECT * FROM T t1, T t2", 
prepareService, metricSet, 1, 4);
-            checkCachePlanStatistics("SELECT * FROM T t1, T t2", 
prepareService, metricSet, 2, 4);
-            checkCachePlanStatistics("SELECT * FROM T t1, T t2", 
prepareService, metricSet, 3, 4);
+            checkCachePlanStatistics("SELECT * FROM T t1, T t2", 
prepareService, 1, 4);
+            checkCachePlanStatistics("SELECT * FROM T t1, T t2", 
prepareService, 2, 4);
+            checkCachePlanStatistics("SELECT * FROM T t1, T t2", 
prepareService, 3, 4);
 
-            checkCachePlanStatistics("SELECT * FROM T", prepareService, 
metricSet, 4, 4);
+            checkCachePlanStatistics("SELECT * FROM T", prepareService, 4, 4);
 
-            checkCachePlanStatistics("SELECT * FROM T t1, T t2, T t3", 
prepareService, metricSet, 4, 6);
+            checkCachePlanStatistics("SELECT * FROM T t1, T t2, T t3", 
prepareService, 4, 6);
 
             // Here, the very first plan has been evicted from cache.
-            checkCachePlanStatistics("SELECT * FROM T", prepareService, 
metricSet, 4, 8);
-            checkCachePlanStatistics("SELECT * FROM T", prepareService, 
metricSet, 5, 8);
+            checkCachePlanStatistics("SELECT * FROM T", prepareService, 4, 8);
+            checkCachePlanStatistics("SELECT * FROM T", prepareService, 5, 8);
         } finally {
             prepareService.stop();
         }
     }
 
-    private void checkCachePlanStatistics(String qry, PrepareService 
prepareService, MetricSet metricSet, int hits, int misses) {
+    private void checkCachePlanStatistics(String qry, PrepareService 
prepareService, int hits, int misses) {
         SqlOperationContext ctx = operationContext();
 
         ParserService parserService = new ParserServiceImpl();
@@ -96,7 +95,8 @@ public class PlanningCacheMetricsTest extends 
AbstractPlannerTest {
 
         await(prepareService.prepareAsync(parsedResult, ctx));
 
-        assertEquals("sql.plan.cache", metricSet.name());
+        MetricSet metricSet = 
metricManager.metricSnapshot().get1().get(SqlPlanCacheMetricSource.NAME);
+
         assertEquals(String.valueOf(hits), 
metricSet.get("Hits").getValueAsString(), "Hits");
         assertEquals(String.valueOf(misses), 
metricSet.get("Misses").getValueAsString(), "Misses");
     }
diff --git 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
index fbd4a97c2b..532a0cec5d 100644
--- 
a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
+++ 
b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/disaster/DisasterRecoveryManager.java
@@ -777,6 +777,7 @@ public class DisasterRecoveryManager implements 
IgniteComponent, SystemViewProvi
         assert previous == null : "tableId=" + tableDescriptor.id();
 
         metricManager.registerSource(metricSource);
+        metricManager.enable(metricSource);
     }
 
     private void unregisterPartitionStatesMetricSource(int tableId) {

Reply via email to