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 bf516b37f83 IGNITE-18235 Remove of DataStorageMetricsMXBean (#10394)
bf516b37f83 is described below

commit bf516b37f8377fba40d09a69811643c1d2c003cf
Author: Nikolay <[email protected]>
AuthorDate: Wed Nov 30 11:00:13 2022 +0300

    IGNITE-18235 Remove of DataStorageMetricsMXBean (#10394)
---
 .../rest/JettyRestProcessorAbstractSelfTest.java   |  39 +-
 .../DiskPageCompressionIntegrationTest.java        |   8 +-
 .../java/org/apache/ignite/DataStorageMetrics.java | 266 ------------
 .../src/main/java/org/apache/ignite/Ignite.java    |   6 -
 .../configuration/DataStorageConfiguration.java    |  13 +-
 .../org/apache/ignite/internal/IgniteKernal.java   |  13 -
 .../cache/persistence/DataStorageMetricsImpl.java  | 396 +++++++-----------
 .../persistence/DataStorageMetricsSnapshot.java    | 325 ---------------
 .../GridCacheDatabaseSharedManager.java            |  20 -
 .../cache/persistence/GridCacheOffheapManager.java |   5 -
 .../IgniteCacheDatabaseSharedManager.java          |   8 -
 .../checkpoint/CheckpointPagesWriter.java          |   1 -
 .../platform/cluster/PlatformClusterGroup.java     |  36 --
 .../internal/processors/rest/GridRestCommand.java  |   3 -
 .../processors/rest/GridRestProcessor.java         |   1 -
 .../memory/MemoryMetricsCommandHandler.java        |  12 +-
 .../visor/node/VisorDataStorageConfiguration.java  |  13 -
 .../visor/node/VisorNodeDataCollectorJob.java      |  21 +-
 .../node/VisorNodeDataCollectorJobResult.java      |  40 --
 .../visor/node/VisorNodeDataCollectorTask.java     |   6 -
 .../node/VisorNodeDataCollectorTaskResult.java     |  28 --
 .../visor/node/VisorPersistenceMetrics.java        | 463 ---------------------
 .../node/VisorPersistentStoreConfiguration.java    |  13 -
 .../ignite/mxbean/DataStorageMetricsMXBean.java    | 206 ---------
 .../IgniteDataStorageMetricsSelfTest.java          |  30 +-
 .../ignite/testframework/junits/IgniteMock.java    |   6 -
 .../junits/multijvm/IgniteProcessProxy.java        |   6 -
 .../ApiParity/DataStorageMetricsParityTest.cs      |  62 ---
 .../Cache/DataStorageMetricsTest.cs                | 106 -----
 .../Cache/PersistenceTest.cs                       |  12 -
 .../Cache/PersistentStoreTestObsolete.cs           |   5 -
 .../Configuration/DataStorageConfiguration.cs      |   2 +-
 .../Apache.Ignite.Core/IDataStorageMetrics.cs      |  87 ----
 .../platforms/dotnet/Apache.Ignite.Core/IIgnite.cs |   9 -
 .../Impl/Cluster/ClusterGroupImpl.cs               |  12 -
 .../Apache.Ignite.Core/Impl/DataStorageMetrics.cs  |  87 ----
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs       |   7 -
 .../PersistentStoreConfiguration.cs                |   2 +-
 .../protocols/http/jetty/GridJettyRestHandler.java |   1 -
 .../java/org/apache/ignite/IgniteSpringBean.java   |   7 -
 40 files changed, 187 insertions(+), 2196 deletions(-)

diff --git 
a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
 
b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
index 55cfc9c5546..f04687ba652 100644
--- 
a/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
+++ 
b/modules/clients/src/test/java/org/apache/ignite/internal/processors/rest/JettyRestProcessorAbstractSelfTest.java
@@ -755,7 +755,8 @@ public abstract class JettyRestProcessorAbstractSelfTest 
extends JettyRestProces
 
         // Test with SQL.
         SqlFieldsQuery qry = new SqlFieldsQuery(
-            "create table employee(id integer primary key, name varchar(100), 
salary integer);" +
+            "drop table if exists employee;" +
+                "create table employee(id integer primary key, name 
varchar(100), salary integer);" +
                 "insert into employee(id, name, salary) values (1, 'Alex', 
300);"
         );
 
@@ -1612,6 +1613,8 @@ public abstract class JettyRestProcessorAbstractSelfTest 
extends JettyRestProces
      */
     @Test
     public void testIncrement() throws Exception {
+        restartGrid();
+
         String ret = content(DEFAULT_CACHE_NAME, 
GridRestCommand.ATOMIC_INCREMENT,
             "key", "incrKey",
             "init", "2",
@@ -1639,6 +1642,8 @@ public abstract class JettyRestProcessorAbstractSelfTest 
extends JettyRestProces
      */
     @Test
     public void testDecrement() throws Exception {
+        restartGrid();
+
         String ret = content(DEFAULT_CACHE_NAME, 
GridRestCommand.ATOMIC_DECREMENT,
             "key", "decrKey",
             "init", "15",
@@ -2420,38 +2425,6 @@ public abstract class JettyRestProcessorAbstractSelfTest 
extends JettyRestProces
         info(GridRestCommand.DATA_REGION_METRICS.key().toUpperCase() + " 
command result: " + ret);
     }
 
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testDataStorageMetricsDisabled() throws Exception {
-        String ret = content(F.asMap("cmd", 
GridRestCommand.DATA_STORAGE_METRICS.key()));
-
-        JsonNode res = validateJsonResponse(ret);
-
-        assertTrue(res.asText().equalsIgnoreCase("Storage metrics are not 
enabled"));
-
-        info(GridRestCommand.DATA_STORAGE_METRICS.key().toUpperCase() + " 
command result: " + ret);
-    }
-
-    /**
-     * @throws Exception If failed.
-     */
-    @Test
-    public void testDataStorageMetricsEnabled() throws Exception {
-        if (!memoryMetricsEnabled) {
-            restartGrid();
-
-            memoryMetricsEnabled = true;
-        }
-
-        String ret = content(F.asMap("cmd", 
GridRestCommand.DATA_STORAGE_METRICS.key()));
-
-        assertNotNull(validateJsonResponse(ret));
-
-        info(GridRestCommand.DATA_STORAGE_METRICS.key().toUpperCase() + " 
command result: " + ret);
-    }
-
     /**
      * Restart grid.
      *
diff --git 
a/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/DiskPageCompressionIntegrationTest.java
 
b/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/DiskPageCompressionIntegrationTest.java
index 27cb3cf89be..d833a337a58 100644
--- 
a/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/DiskPageCompressionIntegrationTest.java
+++ 
b/modules/compress/src/test/java/org/apache/ignite/internal/processors/compress/DiskPageCompressionIntegrationTest.java
@@ -50,6 +50,7 @@ import static 
org.apache.ignite.configuration.DataStorageConfiguration.MAX_PAGE_
 import static org.apache.ignite.configuration.DiskPageCompression.ZSTD;
 import static 
org.apache.ignite.internal.processors.cache.CacheGroupMetricsImpl.CACHE_GROUP_METRICS_PREFIX;
 import static 
org.apache.ignite.internal.processors.cache.persistence.CheckpointState.FINISHED;
+import static 
org.apache.ignite.internal.processors.cache.persistence.DataStorageMetricsImpl.DATASTORAGE_METRIC_PREFIX;
 import static 
org.apache.ignite.internal.processors.metric.impl.MetricUtils.metricName;
 
 /**
@@ -67,7 +68,6 @@ public class DiskPageCompressionIntegrationTest extends 
AbstractPageCompressionI
         factory = getFileIOFactory();
 
         DataStorageConfiguration dsCfg = new DataStorageConfiguration()
-            .setMetricsEnabled(true)
             .setPageSize(MAX_PAGE_SIZE)
             .setDefaultDataRegionConfiguration(drCfg)
             .setFileIOFactory(U.isLinux() ? factory : new 
PunchFileIOFactory(factory));
@@ -121,8 +121,10 @@ public class DiskPageCompressionIntegrationTest extends 
AbstractPageCompressionI
 
         Thread.sleep(100); // Wait for metrics update.
 
-        long storeSize = ignite.dataStorageMetrics().getStorageSize();
-        long sparseStoreSize = 
ignite.dataStorageMetrics().getSparseStorageSize();
+        MetricRegistry pMetrics = 
ignite.context().metric().registry(DATASTORAGE_METRIC_PREFIX);
+
+        long storeSize = 
pMetrics.<LongMetric>findMetric("StorageSize").value();
+        long sparseStoreSize = 
pMetrics.<LongMetric>findMetric("SparseStorageSize").value();
 
         assertTrue("storeSize: " + storeSize, storeSize > 0);
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/DataStorageMetrics.java 
b/modules/core/src/main/java/org/apache/ignite/DataStorageMetrics.java
deleted file mode 100644
index 6da54316803..00000000000
--- a/modules/core/src/main/java/org/apache/ignite/DataStorageMetrics.java
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ignite;
-
-import org.apache.ignite.configuration.DataStorageConfiguration;
-import org.apache.ignite.spi.metric.MetricExporterSpi;
-import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
-import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
-import org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi;
-
-/**
- * Data storage metrics are used to obtain statistics on persistent store and 
whole data storage.
- *
- * @deprecated Check the {@link ReadOnlyMetricRegistry} with 
"name=io.datastorage" instead.
- *
- * @see ReadOnlyMetricManager
- * @see ReadOnlyMetricRegistry
- * @see JmxMetricExporterSpi
- * @see MetricExporterSpi
- */
-@Deprecated
-public interface DataStorageMetrics {
-    /**
-     * @return  The average number of WAL records per second written during 
the last time interval.
-     * <p>
-     * The length of time interval is configured via {@link 
DataStorageConfiguration#setMetricsRateTimeInterval(long)}
-     * configuration property.
-     * The number of subintervals is configured via {@link 
DataStorageConfiguration#setMetricsSubIntervalCount(int)}
-     * configuration property.
-     */
-    public float getWalLoggingRate();
-
-    /**
-     * @return  The average number of bytes per second written during the last 
time interval.
-     * The length of time interval is configured via {@link 
DataStorageConfiguration#setMetricsRateTimeInterval(long)}
-     * configuration property.
-     * The number of subintervals is configured via {@link 
DataStorageConfiguration#setMetricsSubIntervalCount(int)}
-     * configuration property.
-     */
-    public float getWalWritingRate();
-
-    /**
-     * @return The current number of WAL segments in the WAL archive.
-     */
-    public int getWalArchiveSegments();
-
-    /**
-     * @return The average WAL fsync duration in microseconds over the last 
time interval.
-     * <p>
-     * The length of time interval is configured via {@link 
DataStorageConfiguration#setMetricsRateTimeInterval(long)}
-     * configuration property.
-     * The number of subintervals is configured via {@link 
DataStorageConfiguration#setMetricsSubIntervalCount(int)}
-     * configuration property.
-     */
-    public float getWalFsyncTimeAverage();
-
-    /**
-     * @return  WAL buffer poll spins number over the last time interval.
-     * <p>
-     * The length of time interval is configured via {@link 
DataStorageConfiguration#setMetricsRateTimeInterval(long)}
-     * configuration property.
-     * The number of subintervals is configured via {@link 
DataStorageConfiguration#setMetricsSubIntervalCount(int)}
-     * configuration property.
-     */
-    public long getWalBuffPollSpinsRate();
-
-    /**
-     * Total size in bytes for storage wal files.
-     *
-     * @return Total size in bytes for storage wal files.
-     */
-    public long getWalTotalSize();
-
-    /**
-     * Time of the last WAL segment rollover.
-     *
-     * @return  Time of the last WAL segment rollover.
-     */
-    public long getWalLastRollOverTime();
-
-    /**
-     * Total checkpoint time from last restart.
-     *
-     * @return  Total checkpoint time from last restart.
-     */
-    public long getCheckpointTotalTime();
-
-    /**
-     * Gets the duration of the last checkpoint in milliseconds.
-     *
-     * @return Total checkpoint duration in milliseconds.
-     */
-    public long getLastCheckpointDuration();
-
-    /**
-     * Returns time when the last checkpoint was started.
-     *
-     * @return Time when the last checkpoint was started.
-     * */
-    public long getLastCheckpointStarted();
-
-    /**
-     * Gets the duration of last checkpoint lock wait in milliseconds.
-     *
-     * @return Checkpoint lock wait time in milliseconds.
-     */
-    public long getLastCheckpointLockWaitDuration();
-
-    /**
-     * Gets the duration of last checkpoint mark phase in milliseconds.
-     *
-     * @return Checkpoint mark duration in milliseconds.
-     */
-    public long getLastCheckpointMarkDuration();
-
-    /**
-     * Gets the duration of last checkpoint pages write phase in milliseconds.
-     *
-     * @return Checkpoint pages write phase in milliseconds.
-     */
-    public long getLastCheckpointPagesWriteDuration();
-
-    /**
-     * Gets the duration of the sync phase of the last checkpoint in 
milliseconds.
-     *
-     * @return Checkpoint fsync time in milliseconds.
-     */
-    public long getLastCheckpointFsyncDuration();
-
-    /**
-     * Gets the total number of pages written during the last checkpoint.
-     *
-     * @return Total number of pages written during the last checkpoint.
-     */
-    public long getLastCheckpointTotalPagesNumber();
-
-    /**
-     * Gets the number of data pages written during the last checkpoint.
-     *
-     * @return Total number of data pages written during the last checkpoint.
-     */
-    public long getLastCheckpointDataPagesNumber();
-
-    /**
-     * Gets the number of pages copied to a temporary checkpoint buffer during 
the last checkpoint.
-     *
-     * @return Total number of pages copied to a temporary checkpoint buffer 
during the last checkpoint.
-     */
-    public long getLastCheckpointCopiedOnWritePagesNumber();
-
-    /**
-     * Total dirty pages for the next checkpoint.
-     *
-     * @return  Total dirty pages for the next checkpoint.
-     */
-    public long getDirtyPages();
-
-    /**
-     * The number of read pages from last restart.
-     *
-     * @return The number of read pages from last restart.
-     */
-    public long getPagesRead();
-
-    /**
-     * The number of written pages from last restart.
-     *
-     * @return The number of written pages from last restart.
-     */
-    public long getPagesWritten();
-
-    /**
-     * The number of replaced pages from last restart.
-     *
-     * @return The number of replaced pages from last restart.
-     */
-    public long getPagesReplaced();
-
-    /**
-     * Total offheap size in bytes.
-     *
-     * @return Total offheap size in bytes.
-     */
-    public long getOffHeapSize();
-
-    /**
-     * Total used offheap size in bytes.
-     *
-     * @return Total used offheap size in bytes.
-     */
-    public long getOffheapUsedSize();
-
-    /**
-     * Total size of memory allocated in bytes.
-     *
-     * @return Total size of memory allocated in bytes.
-     */
-    public long getTotalAllocatedSize();
-
-    /**
-     * Gets used checkpoint buffer size in pages.
-     *
-     * @return Checkpoint buffer size in pages.
-     */
-    public long getUsedCheckpointBufferPages();
-
-    /**
-     * Gets used checkpoint buffer size in bytes.
-     *
-     * @return Checkpoint buffer size in bytes.
-     */
-    public long getUsedCheckpointBufferSize();
-
-    /**
-     * Checkpoint buffer size in bytes.
-     *
-     * @return Checkpoint buffer size in bytes.
-     */
-    public long getCheckpointBufferSize();
-
-    /**
-     * Storage space allocated in bytes.
-     *
-     * @return Storage space allocated in bytes.
-     */
-    public long getStorageSize();
-
-    /**
-     * Storage space allocated adjusted for possible sparsity in bytes.
-     *
-     * May produce unstable or even incorrect result on some file systems 
(e.g. XFS).
-     * Known to work correctly on Ext4 and Btrfs.
-     *
-     * @return Storage space allocated adjusted for possible sparsity in bytes
-     *         or negative value is not supported.
-     */
-    public long getSparseStorageSize();
-
-    /**
-     * Getting the total number of logged bytes into the WAL.
-     *
-     * @return Number of bytes.
-     */
-    long getWalWrittenBytes();
-
-    /**
-     * Getting the total size of the compressed segments in bytes.
-     *
-     * @return Number of bytes.
-     */
-    long getWalCompressedBytes();
-}
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java 
b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index 6698adc18c7..14567aaefe1 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -753,12 +753,6 @@ public interface Ignite extends AutoCloseable {
      */
     @Nullable public DataRegionMetrics dataRegionMetrics(String memPlcName);
 
-    /**
-     * @return {@link DataStorageMetrics} snapshot.
-     * @deprecated Check the {@link ReadOnlyMetricRegistry} with 
"name=io.datastorage" instead.
-     */
-    public DataStorageMetrics dataStorageMetrics();
-
     /**
      * Gets an instance of {@link IgniteEncryption} interface.
      *
diff --git 
a/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
index ad5b306db96..b2b6d228588 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/DataStorageConfiguration.java
@@ -106,7 +106,8 @@ public class DataStorageConfiguration implements 
Serializable {
     /** Lock default wait time, 10 sec. */
     public static final int DFLT_LOCK_WAIT_TIME = 10 * 1000;
 
-    /** */
+    /** @deprecated Will be removed in upcoming releases. */
+    @Deprecated
     public static final boolean DFLT_METRICS_ENABLED = false;
 
     /** Default amount of sub intervals to calculate rate-based metric. */
@@ -244,7 +245,11 @@ public class DataStorageConfiguration implements 
Serializable {
     @IgniteExperimental
     private String cdcWalPath = DFLT_WAL_CDC_PATH;
 
-    /** Metrics enabled flag. */
+    /**
+     * Metrics enabled flag.
+     * @deprecated Will be removed in upcoming releases.
+     */
+    @Deprecated
     private boolean metricsEnabled = DFLT_METRICS_ENABLED;
 
     /** Wal mode. */
@@ -801,7 +806,9 @@ public class DataStorageConfiguration implements 
Serializable {
      * Default value is {@link #DFLT_METRICS_ENABLED}.
      *
      * @return Metrics enabled flag.
+     * @deprecated Will be removed in upcoming releases.
      */
+    @Deprecated
     public boolean isMetricsEnabled() {
         return metricsEnabled;
     }
@@ -811,7 +818,9 @@ public class DataStorageConfiguration implements 
Serializable {
      *
      * @param metricsEnabled Metrics enabled flag.
      * @return {@code this} for chaining.
+     * @deprecated Will be removed in upcoming releases.
      */
+    @Deprecated
     public DataStorageConfiguration setMetricsEnabled(boolean metricsEnabled) {
         this.metricsEnabled = metricsEnabled;
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 035e5b8f439..861a8301567 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -45,7 +45,6 @@ import java.util.concurrent.atomic.AtomicReference;
 import javax.cache.CacheException;
 import org.apache.ignite.DataRegionMetrics;
 import org.apache.ignite.DataRegionMetricsAdapter;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteAtomicLong;
 import org.apache.ignite.IgniteAtomicReference;
@@ -2857,18 +2856,6 @@ public class IgniteKernal implements IgniteEx, 
Externalizable {
         }
     }
 
-    /** {@inheritDoc} */
-    @Override public DataStorageMetrics dataStorageMetrics() {
-        guard();
-
-        try {
-            return ctx.cache().context().database().persistentStoreMetrics();
-        }
-        finally {
-            unguard();
-        }
-    }
-
     /** {@inheritDoc} */
     @Override public @NotNull TracingConfigurationManager 
tracingConfiguration() {
         guard();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsImpl.java
index 3f6f1ab7e23..fd7ae75a970 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsImpl.java
@@ -29,13 +29,12 @@ import 
org.apache.ignite.internal.processors.metric.impl.LongAdderMetric;
 import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteOutClosure;
-import org.apache.ignite.mxbean.DataStorageMetricsMXBean;
 import org.jetbrains.annotations.Nullable;
 
 /**
  *
  */
-public class DataStorageMetricsImpl implements DataStorageMetricsMXBean {
+public class DataStorageMetricsImpl {
     /** Prefix for all data storage metrics. */
     public static final String DATASTORAGE_METRIC_PREFIX = "io.datastorage";
 
@@ -99,14 +98,11 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
     /** */
     private final AtomicLongMetric lastCpCowPages;
 
-    /** */
-    private volatile long rateTimeInterval;
-
-    /** */
-    private volatile int subInts;
-
-    /** */
-    private volatile boolean metricsEnabled;
+    /**
+     * @deprecated Will be removed in upcoming releases.
+     */
+    @Deprecated
+    private final boolean metricsEnabled;
 
     /** WAL manager. */
     @Nullable private volatile IgniteWriteAheadLogManager wal;
@@ -181,8 +177,6 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         int subInts
     ) {
         this.metricsEnabled = metricsEnabled;
-        this.rateTimeInterval = rateTimeInterval;
-        this.subInts = subInts;
 
         MetricRegistry mreg = mmgr.registry(DATASTORAGE_METRIC_PREFIX);
 
@@ -274,11 +268,11 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
             "Storage space allocated adjusted for possible sparsity, in 
bytes.");
 
         mreg.register("WalArchiveSegments",
-            this::getWalArchiveSegments,
+            this::walArchiveSegments,
             "Current number of WAL segments in the WAL archive.");
 
         mreg.register("WalTotalSize",
-            this::getWalTotalSize,
+            this::walTotalSize,
             "Total size in bytes for storage wal files.");
 
         long[] cpBounds = new long[] {100, 500, 1000, 5000, 30000};
@@ -326,154 +320,65 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
             "WalCompressedBytes",
             "Total size of the compressed segments in bytes."
         );
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getWalLoggingRate() {
-        if (!metricsEnabled)
-            return 0;
-
-        return ((float)walLoggingRate.value() * 1000) / rateTimeInterval;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getWalWritingRate() {
-        if (!metricsEnabled)
-            return 0;
-
-        return ((float)walWritingRate.value() * 1000) / rateTimeInterval;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWalArchiveSegments() {
-        if (!metricsEnabled)
-            return 0;
-
-        IgniteWriteAheadLogManager walMgr = this.wal;
-
-        return walMgr == null ? 0 : walMgr.walArchiveSegments();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getWalFsyncTimeAverage() {
-        if (!metricsEnabled)
-            return 0;
-
-        long numRate = walFsyncTimeNum.value();
-
-        if (numRate == 0)
-            return 0;
-
-        return (float)walFsyncTimeDuration.value() / numRate;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalBuffPollSpinsRate() {
-        if (!metricsEnabled)
-            return 0;
 
-        return walBuffPollSpinsNum.value();
-    }
+        mreg.register(
+            "walFsyncTimeAverage",
+            this::walFsyncTimeAverage,
+            "Average WAL fsync duration in microseconds over the last time 
interval."
+        );
 
+        mreg.register("DirtyPages", this::dirtyPages, "Total dirty pages for 
the next checkpoint.");
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointDuration() {
-        if (!metricsEnabled)
-            return 0;
+        mreg.register("PagesRead", this::pagesRead, "The number of read pages 
from last restart.");
 
-        return lastCpDuration.value();
-    }
+        mreg.register("PagesWritten", this::pagesWritten, "The number of 
written pages from last restart.");
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointStarted() {
-        if (!metricsEnabled)
-            return 0;
+        mreg.register("PagesReplaced", this::pagesReplaced, "The number of 
replaced pages from last restart.");
 
-        return lastCpStart.value();
-    }
+        mreg.register("OffHeapSize", this::offHeapSize, "Total offheap size in 
bytes.");
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointLockWaitDuration() {
-        if (!metricsEnabled)
-            return 0;
+        mreg.register("OffheapUsedSize", this::offheapUsedSize, "Total used 
offheap size in bytes.");
 
-        return lastCpLockWaitDuration.value();
-    }
+        mreg.register("TotalAllocatedSize", this::totalAllocatedSize, "Total 
size of memory allocated in bytes.");
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointMarkDuration() {
-        if (!metricsEnabled)
-            return 0;
+        mreg.register("UsedCheckpointBufferPages",
+            this::usedCheckpointBufferPages,
+            "Used checkpoint buffer size in pages.");
 
-        return lastCpMarkDuration.value();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointPagesWriteDuration() {
-        if (!metricsEnabled)
-            return 0;
+        mreg.register("UsedCheckpointBufferSize",
+            this::usedCheckpointBufferSize,
+            "Used checkpoint buffer size in bytes.");
 
-        return lastCpPagesWriteDuration.value();
+        mreg.register("CheckpointBufferSize", this::checkpointBufferSize, 
"Checkpoint buffer size in bytes.");
     }
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointFsyncDuration() {
+    /** @return Current number of WAL segments in the WAL archive. */
+    private int walArchiveSegments() {
         if (!metricsEnabled)
             return 0;
 
-        return lastCpFsyncDuration.value();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointTotalPagesNumber() {
-        if (!metricsEnabled)
-            return 0;
+        IgniteWriteAheadLogManager walMgr = this.wal;
 
-        return lastCpTotalPages.value();
+        return walMgr == null ? 0 : walMgr.walArchiveSegments();
     }
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointDataPagesNumber() {
+    /**
+     * @return The average WAL fsync duration in microseconds over the last 
time interval.
+     */
+    private float walFsyncTimeAverage() {
         if (!metricsEnabled)
             return 0;
 
-        return lastCpDataPages.value();
-    }
+        long numRate = walFsyncTimeNum.value();
 
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointCopiedOnWritePagesNumber() {
-        if (!metricsEnabled)
+        if (numRate == 0)
             return 0;
 
-        return lastCpCowPages.value();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void enableMetrics() {
-        metricsEnabled = true;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void disableMetrics() {
-        metricsEnabled = false;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void rateTimeInterval(long rateTimeInterval) {
-        this.rateTimeInterval = rateTimeInterval;
-
-        resetRates();
-    }
-
-    /** {@inheritDoc} */
-    @Override public void subIntervals(int subInts) {
-        this.subInts = subInts;
-
-        resetRates();
+        return (float)walFsyncTimeDuration.value() / numRate;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getWalTotalSize() {
+    /** @return Total size in bytes for storage wal files. */
+    private long walTotalSize() {
         if (!metricsEnabled)
             return 0;
 
@@ -482,24 +387,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return walSize != null ? walSize.apply() : 0;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getWalLastRollOverTime() {
-        if (!metricsEnabled)
-            return 0;
-
-        return lastWalSegmentRollOverTime.value();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCheckpointTotalTime() {
-        if (!metricsEnabled)
-            return 0;
-
-        return totalCheckpointTime.value();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getDirtyPages() {
+    /**
+     * Total dirty pages for the next checkpoint.
+     *
+     * @return  Total dirty pages for the next checkpoint.
+     */
+    private long dirtyPages() {
         if (!metricsEnabled)
             return 0;
 
@@ -516,8 +409,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return dirtyPages;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getPagesRead() {
+    /**
+     * The number of read pages from last restart.
+     *
+     * @return The number of read pages from last restart.
+     */
+    private long pagesRead() {
         if (!metricsEnabled)
             return 0;
 
@@ -534,8 +431,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return readPages;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getPagesWritten() {
+    /**
+     * The number of written pages from last restart.
+     *
+     * @return The number of written pages from last restart.
+     */
+    private long pagesWritten() {
         if (!metricsEnabled)
             return 0;
 
@@ -552,8 +453,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return writtenPages;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getPagesReplaced() {
+    /**
+     * The number of replaced pages from last restart.
+     *
+     * @return The number of replaced pages from last restart.
+     */
+    private long pagesReplaced() {
         if (!metricsEnabled)
             return 0;
 
@@ -570,8 +475,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return replacedPages;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getOffHeapSize() {
+    /**
+     * Total offheap size in bytes.
+     *
+     * @return Total offheap size in bytes.
+     */
+    private long offHeapSize() {
         if (!metricsEnabled)
             return 0;
 
@@ -588,8 +497,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return offHeapSize;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getOffheapUsedSize() {
+    /**
+     * Total used offheap size in bytes.
+     *
+     * @return Total used offheap size in bytes.
+     */
+    private long offheapUsedSize() {
         if (!metricsEnabled)
             return 0;
 
@@ -606,8 +519,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return offHeapUsedSize;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getTotalAllocatedSize() {
+    /**
+     * Total size of memory allocated in bytes.
+     *
+     * @return Total size of memory allocated in bytes.
+     */
+    private long totalAllocatedSize() {
         if (!metricsEnabled)
             return 0;
 
@@ -624,8 +541,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return totalAllocatedSize;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getUsedCheckpointBufferPages() {
+    /**
+     * Gets used checkpoint buffer size in pages.
+     *
+     * @return Checkpoint buffer size in pages.
+     */
+    private long usedCheckpointBufferPages() {
         if (!metricsEnabled)
             return 0;
 
@@ -642,8 +563,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return usedCheckpointBufferPages;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getUsedCheckpointBufferSize() {
+    /**
+     * Gets used checkpoint buffer size in bytes.
+     *
+     * @return Checkpoint buffer size in bytes.
+     */
+    private long usedCheckpointBufferSize() {
         if (!metricsEnabled)
             return 0;
 
@@ -660,8 +585,12 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         return usedCheckpointBufferSize;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getCheckpointBufferSize() {
+    /**
+     * Checkpoint buffer size in bytes.
+     *
+     * @return Checkpoint buffer size in bytes.
+     */
+    private long checkpointBufferSize() {
         if (!metricsEnabled)
             return 0;
 
@@ -696,7 +625,10 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
      *
      */
     public void onWallRollOver() {
-        this.lastWalSegmentRollOverTime.value(U.currentTimeMillis());
+        if (!metricsEnabled)
+            return;
+
+        lastWalSegmentRollOverTime.value(U.currentTimeMillis());
     }
 
     /**
@@ -708,21 +640,13 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
 
     /**
      * @return Metrics enabled flag.
+     * @deprecated Will be removed in upcoming releases.
      */
+    @Deprecated
     public boolean metricsEnabled() {
         return metricsEnabled;
     }
 
-    /** {@inheritDoc} */
-    @Override public long getStorageSize() {
-        return storageSize.value();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getSparseStorageSize() {
-        return sparseStorageSize.value();
-    }
-
     /**
      * @param beforeLockDuration Checkpoint action before taken write lock 
duration.
      * @param lockWaitDuration Lock wait duration.
@@ -761,39 +685,40 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
         long storageSize,
         long sparseStorageSize
     ) {
-        if (metricsEnabled) {
-            lastCpBeforeLockDuration.value(beforeLockDuration);
-            lastCpLockWaitDuration.value(lockWaitDuration);
-            lastCpListenersExecuteDuration.value(listenersExecuteDuration);
-            lastCpMarkDuration.value(markDuration);
-            lastCpLockHoldDuration.value(lockHoldDuration);
-            lastCpPagesWriteDuration.value(pagesWriteDuration);
-            lastCpFsyncDuration.value(fsyncDuration);
-            lastCpWalRecordFsyncDuration.value(walRecordFsyncDuration);
-            lastCpWriteEntryDuration.value(writeEntryDuration);
-            lastCpSplitAndSortPagesDuration.value(splitAndSortPagesDuration);
-            lastCpDuration.value(duration);
-            lastCpStart.value(start);
-            lastCpTotalPages.value(totalPages);
-            lastCpDataPages.value(dataPages);
-            lastCpCowPages.value(cowPages);
-            this.storageSize.value(storageSize);
-            this.sparseStorageSize.value(sparseStorageSize);
-
-            totalCheckpointTime.add(duration);
-
-            cpBeforeLockHistogram.value(beforeLockDuration);
-            cpLockWaitHistogram.value(lockWaitDuration);
-            cpListenersExecuteHistogram.value(listenersExecuteDuration);
-            cpMarkHistogram.value(markDuration);
-            cpLockHoldHistogram.value(lockHoldDuration);
-            cpPagesWriteHistogram.value(pagesWriteDuration);
-            cpFsyncHistogram.value(fsyncDuration);
-            cpWalRecordFsyncHistogram.value(walRecordFsyncDuration);
-            cpWriteEntryHistogram.value(writeEntryDuration);
-            cpSplitAndSortPagesHistogram.value(splitAndSortPagesDuration);
-            cpHistogram.value(duration);
-        }
+        if (!metricsEnabled)
+            return;
+
+        lastCpBeforeLockDuration.value(beforeLockDuration);
+        lastCpLockWaitDuration.value(lockWaitDuration);
+        lastCpListenersExecuteDuration.value(listenersExecuteDuration);
+        lastCpMarkDuration.value(markDuration);
+        lastCpLockHoldDuration.value(lockHoldDuration);
+        lastCpPagesWriteDuration.value(pagesWriteDuration);
+        lastCpFsyncDuration.value(fsyncDuration);
+        lastCpWalRecordFsyncDuration.value(walRecordFsyncDuration);
+        lastCpWriteEntryDuration.value(writeEntryDuration);
+        lastCpSplitAndSortPagesDuration.value(splitAndSortPagesDuration);
+        lastCpDuration.value(duration);
+        lastCpStart.value(start);
+        lastCpTotalPages.value(totalPages);
+        lastCpDataPages.value(dataPages);
+        lastCpCowPages.value(cowPages);
+        this.storageSize.value(storageSize);
+        this.sparseStorageSize.value(sparseStorageSize);
+
+        totalCheckpointTime.add(duration);
+
+        cpBeforeLockHistogram.value(beforeLockDuration);
+        cpLockWaitHistogram.value(lockWaitDuration);
+        cpListenersExecuteHistogram.value(listenersExecuteDuration);
+        cpMarkHistogram.value(markDuration);
+        cpLockHoldHistogram.value(lockHoldDuration);
+        cpPagesWriteHistogram.value(pagesWriteDuration);
+        cpFsyncHistogram.value(fsyncDuration);
+        cpWalRecordFsyncHistogram.value(walRecordFsyncDuration);
+        cpWriteEntryHistogram.value(writeEntryDuration);
+        cpSplitAndSortPagesHistogram.value(splitAndSortPagesDuration);
+        cpHistogram.value(duration);
     }
 
     /**
@@ -802,6 +727,9 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
      * @param size Record size in bytes.
      */
     public void onWalRecordLogged(long size) {
+        if (!metricsEnabled)
+            return;
+
         walLoggingRate.increment();
 
         walWrittenBytes.add(size);
@@ -811,6 +739,9 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
      * @param size Size written.
      */
     public void onWalBytesWritten(int size) {
+        if (!metricsEnabled)
+            return;
+
         walWritingRate.add(size);
     }
 
@@ -818,6 +749,9 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
      * @param nanoTime Fsync nano time.
      */
     public void onFsync(long nanoTime) {
+        if (!metricsEnabled)
+            return;
+
         long microseconds = nanoTime / 1_000;
 
         walFsyncTimeDuration.add(microseconds);
@@ -828,35 +762,10 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
      * @param num Number.
      */
     public void onBuffPollSpin(int num) {
-        walBuffPollSpinsNum.add(num);
-    }
-
-    /**
-     *
-     */
-    private void resetRates() {
-        walLoggingRate.reset(rateTimeInterval, subInts);
-        walWritingRate.reset(rateTimeInterval, subInts);
-        walBuffPollSpinsNum.reset(rateTimeInterval, subInts);
-
-        walFsyncTimeDuration.reset(rateTimeInterval, subInts);
-        walFsyncTimeNum.reset(rateTimeInterval, subInts);
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalWrittenBytes() {
         if (!metricsEnabled)
-            return 0;
-
-        return walWrittenBytes.value();
-    }
+            return;
 
-    /** {@inheritDoc} */
-    @Override public long getWalCompressedBytes() {
-        if (!metricsEnabled)
-            return 0;
-
-        return walCompressedBytes.value();
+        walBuffPollSpinsNum.add(num);
     }
 
     /**
@@ -865,6 +774,9 @@ public class DataStorageMetricsImpl implements 
DataStorageMetricsMXBean {
      * @param size Size of the compressed segment in bytes.
      */
     public void onWalSegmentCompressed(long size) {
+        if (!metricsEnabled)
+            return;
+
         walCompressedBytes.add(size);
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsSnapshot.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsSnapshot.java
deleted file mode 100644
index 7f6595213aa..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DataStorageMetricsSnapshot.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ignite.internal.processors.cache.persistence;
-
-import org.apache.ignite.DataStorageMetrics;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.spi.metric.MetricExporterSpi;
-import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
-import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
-import org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi;
-
-/**
- * @deprecated Check the {@link ReadOnlyMetricRegistry} with 
"name=io.datastorage" instead.
- *
- * @see ReadOnlyMetricManager
- * @see ReadOnlyMetricRegistry
- * @see JmxMetricExporterSpi
- * @see MetricExporterSpi
- */
-@Deprecated
-public class DataStorageMetricsSnapshot implements DataStorageMetrics {
-    /** */
-    private float walLoggingRate;
-
-    /** */
-    private float walWritingRate;
-
-    /** */
-    private int walArchiveSegments;
-
-    /** */
-    private float walFsyncTimeAvg;
-
-    /** */
-    private long walBuffPollSpinsNum;
-
-    /** */
-    private long lastCpDuration;
-
-    /** */
-    private long lastCpStart;
-
-    /** */
-    private long lastCpLockWaitDuration;
-
-    /** */
-    private long lastCpMmarkDuration;
-
-    /** */
-    private long lastCpPagesWriteDuration;
-
-    /** */
-    private long lastCpFsyncDuration;
-
-    /** */
-    private long lastCpTotalPages;
-
-    /** */
-    private long lastCpDataPages;
-
-    /** */
-    private long lastCpCowPages;
-
-    /** */
-    private long walTotalSize;
-
-    /** */
-    private long walLastRollOverTime;
-
-    /** */
-    private long checkpointTotalTime;
-
-    /** */
-    private long usedCheckpointBufferSize;
-
-    /** */
-    private long usedCheckpointBufferPages;
-
-    /** */
-    private long checkpointBufferSize;
-
-    /** */
-    private long dirtyPages;
-
-    /** */
-    private long readPages;
-
-    /** */
-    private long writtenPages;
-
-    /** */
-    private long replacedPages;
-
-    /** */
-    private long offHeapSize;
-
-    /** */
-    private long offHeadUsedSize;
-
-    /** */
-    private long totalAllocatedSize;
-
-    /** */
-    private long storageSize;
-
-    /** */
-    private long sparseStorageSize;
-
-    /** Total number of logged bytes into the WAL. */
-    private long walWrittenBytes;
-
-    /** Total size of the compressed segments in bytes. */
-    private long walCompressedBytes;
-
-    /**
-     * @param metrics Metrics.
-     */
-    public DataStorageMetricsSnapshot(DataStorageMetrics metrics) {
-        walLoggingRate = metrics.getWalLoggingRate();
-        walWritingRate = metrics.getWalWritingRate();
-        walArchiveSegments = metrics.getWalArchiveSegments();
-        walFsyncTimeAvg = metrics.getWalFsyncTimeAverage();
-        walBuffPollSpinsNum = metrics.getWalBuffPollSpinsRate();
-        lastCpDuration = metrics.getLastCheckpointDuration();
-        lastCpStart = metrics.getLastCheckpointStarted();
-        lastCpLockWaitDuration = metrics.getLastCheckpointLockWaitDuration();
-        lastCpMmarkDuration = metrics.getLastCheckpointMarkDuration();
-        lastCpPagesWriteDuration = 
metrics.getLastCheckpointPagesWriteDuration();
-        lastCpFsyncDuration = metrics.getLastCheckpointFsyncDuration();
-        lastCpTotalPages = metrics.getLastCheckpointTotalPagesNumber();
-        lastCpDataPages = metrics.getLastCheckpointDataPagesNumber();
-        lastCpCowPages = metrics.getLastCheckpointCopiedOnWritePagesNumber();
-        walTotalSize = metrics.getWalTotalSize();
-        walLastRollOverTime = metrics.getWalLastRollOverTime();
-        checkpointTotalTime = metrics.getCheckpointTotalTime();
-        usedCheckpointBufferSize = metrics.getUsedCheckpointBufferSize();
-        usedCheckpointBufferPages = metrics.getUsedCheckpointBufferPages();
-        checkpointBufferSize = metrics.getCheckpointBufferSize();
-        dirtyPages = metrics.getDirtyPages();
-        readPages = metrics.getPagesRead();
-        writtenPages = metrics.getPagesWritten();
-        replacedPages = metrics.getPagesReplaced();
-        offHeapSize = metrics.getOffHeapSize();
-        offHeadUsedSize = metrics.getOffheapUsedSize();
-        totalAllocatedSize = metrics.getTotalAllocatedSize();
-        storageSize = metrics.getStorageSize();
-        sparseStorageSize = metrics.getSparseStorageSize();
-        walWrittenBytes = metrics.getWalWrittenBytes();
-        walCompressedBytes = metrics.getWalCompressedBytes();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getWalLoggingRate() {
-        return walLoggingRate;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getWalWritingRate() {
-        return walWritingRate;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int getWalArchiveSegments() {
-        return walArchiveSegments;
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getWalFsyncTimeAverage() {
-        return walFsyncTimeAvg;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalBuffPollSpinsRate() {
-        return walBuffPollSpinsNum;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointDuration() {
-        return lastCpDuration;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointStarted() {
-        return lastCpStart;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointLockWaitDuration() {
-        return lastCpLockWaitDuration;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointMarkDuration() {
-        return lastCpMmarkDuration;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointPagesWriteDuration() {
-        return lastCpPagesWriteDuration;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointFsyncDuration() {
-        return lastCpFsyncDuration;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointTotalPagesNumber() {
-        return lastCpTotalPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointDataPagesNumber() {
-        return lastCpDataPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getLastCheckpointCopiedOnWritePagesNumber() {
-        return lastCpCowPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalTotalSize() {
-        return walTotalSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalLastRollOverTime() {
-        return walLastRollOverTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCheckpointTotalTime() {
-        return checkpointTotalTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getDirtyPages() {
-        return dirtyPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getPagesRead() {
-        return readPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getPagesWritten() {
-        return writtenPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getPagesReplaced() {
-        return replacedPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getOffHeapSize() {
-        return offHeapSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getOffheapUsedSize() {
-        return offHeadUsedSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getTotalAllocatedSize() {
-        return totalAllocatedSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getUsedCheckpointBufferPages() {
-        return usedCheckpointBufferPages;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getUsedCheckpointBufferSize() {
-        return usedCheckpointBufferSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCheckpointBufferSize() {
-        return checkpointBufferSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getStorageSize() {
-        return storageSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getSparseStorageSize() {
-        return sparseStorageSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalWrittenBytes() {
-        return walWrittenBytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getWalCompressedBytes() {
-        return walCompressedBytes;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(DataStorageMetricsSnapshot.class, this);
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 5730d45228a..12a5bff5e44 100755
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -48,7 +48,6 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import org.apache.ignite.DataRegionMetrics;
 import org.apache.ignite.DataRegionMetricsProvider;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteInterruptedException;
@@ -164,7 +163,6 @@ import org.apache.ignite.lang.IgniteOutClosure;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.maintenance.MaintenanceRegistry;
 import org.apache.ignite.maintenance.MaintenanceTask;
-import org.apache.ignite.mxbean.DataStorageMetricsMXBean;
 import org.apache.ignite.spi.systemview.view.MetastorageView;
 import org.apache.ignite.transactions.TransactionState;
 import org.jetbrains.annotations.NotNull;
@@ -948,19 +946,6 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
         checkpointManager.unblockCheckpointLock();
     }
 
-    /** {@inheritDoc} */
-    @Override protected void registerMetricsMBeans(IgniteConfiguration cfg) {
-        super.registerMetricsMBeans(cfg);
-
-        registerMetricsMBean(
-            cctx.kernalContext().config(),
-            MBEAN_GROUP,
-            MBEAN_NAME,
-            dsMetrics,
-            DataStorageMetricsMXBean.class
-        );
-    }
-
     /** {@inheritDoc} */
     @Deprecated
     @Override protected IgniteOutClosure<Long> freeSpaceProvider(final 
DataRegionConfiguration dataRegCfg) {
@@ -3186,11 +3171,6 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
         }
     }
 
-    /** {@inheritDoc} */
-    @Override public DataStorageMetrics persistentStoreMetrics() {
-        return new DataStorageMetricsSnapshot(dsMetrics);
-    }
-
     /** {@inheritDoc} */
     @Override public MetaStorage metaStorage() {
         return metaStorage;
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
index 45bc6c55c8e..64bc8928ec6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
@@ -175,9 +175,6 @@ public class GridCacheOffheapManager extends 
IgniteCacheOffheapManagerImpl imple
     /** Flag indicates that all group partitions have restored their state 
from page memory / disk. */
     private volatile boolean partitionStatesRestored;
 
-    /** */
-    private DataStorageMetricsImpl persStoreMetrics;
-
     /** {@inheritDoc} */
     @Override protected void initPendingTree(GridCacheContext cctx) throws 
IgniteCheckedException {
         // No-op. Per-partition PendingTree should be used.
@@ -229,8 +226,6 @@ public class GridCacheOffheapManager extends 
IgniteCacheOffheapManagerImpl imple
             ctx.diagnostic().pageLockTracker()
         );
 
-        persStoreMetrics = databaseSharedManager.dataStorageMetricsImpl();
-
         databaseSharedManager.addCheckpointListener(this, grp.dataRegion());
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
index c78914136be..d8444fa0d85 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java
@@ -33,7 +33,6 @@ import java.util.stream.IntStream;
 import javax.management.InstanceNotFoundException;
 import org.apache.ignite.DataRegionMetrics;
 import org.apache.ignite.DataRegionMetricsProvider;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.IgniteSystemProperties;
@@ -949,13 +948,6 @@ public class IgniteCacheDatabaseSharedManager extends 
GridCacheSharedManagerAdap
             .collect(Collectors.toList());
     }
 
-    /**
-     * @return DataStorageMetrics if persistence is enabled or {@code null} 
otherwise.
-     */
-    public DataStorageMetrics persistentStoreMetrics() {
-        return null;
-    }
-
     /**
      * @return Data storage metrics implementation.
      */
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointPagesWriter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointPagesWriter.java
index f45f0c91293..5bb7364ece9 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointPagesWriter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/checkpoint/CheckpointPagesWriter.java
@@ -249,7 +249,6 @@ public class CheckpointPagesWriter implements Runnable {
                     return;
                 }
 
-                int groupId = fullPageId.groupId();
                 long pageId = fullPageId.pageId();
 
                 assert getType(buf) != 0 : "Invalid state. Type is 0! pageId = 
" + hexLong(pageId);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
index 33937c4f288..923fb851707 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cluster/PlatformClusterGroup.java
@@ -20,7 +20,6 @@ package 
org.apache.ignite.internal.processors.platform.cluster;
 import java.util.Collection;
 import java.util.UUID;
 import org.apache.ignite.DataRegionMetrics;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteCluster;
@@ -143,9 +142,6 @@ public class PlatformClusterGroup extends 
PlatformAbstractTarget {
     /** */
     private static final int OP_DATA_REGION_METRICS_BY_NAME = 36;
 
-    /** */
-    private static final int OP_DATA_STORAGE_METRICS = 37;
-
     /** */
     private static final int OP_ENABLE_STATISTICS = 38;
 
@@ -188,14 +184,6 @@ public class PlatformClusterGroup extends 
PlatformAbstractTarget {
                 break;
             }
 
-            case OP_DATA_STORAGE_METRICS: {
-                DataStorageMetrics metrics = prj.ignite().dataStorageMetrics();
-
-                writeDataStorageMetrics(writer, metrics);
-
-                break;
-            }
-
             case OP_DATA_REGION_METRICS: {
                 Collection<DataRegionMetrics> metrics = 
prj.ignite().dataRegionMetrics();
 
@@ -575,28 +563,4 @@ public class PlatformClusterGroup extends 
PlatformAbstractTarget {
         writer.writeLong(metrics.getOffHeapSize());
         writer.writeLong(metrics.getOffheapUsedSize());
     }
-
-    /**
-     * Writes data storage metrics.
-     *
-     * @param writer Writer.
-     * @param metrics Metrics
-     */
-    private void writeDataStorageMetrics(BinaryRawWriter writer, 
DataStorageMetrics metrics) {
-        assert writer != null;
-        assert metrics != null;
-
-        writer.writeFloat(metrics.getWalLoggingRate());
-        writer.writeFloat(metrics.getWalWritingRate());
-        writer.writeInt(metrics.getWalArchiveSegments());
-        writer.writeFloat(metrics.getWalFsyncTimeAverage());
-        writer.writeLong(metrics.getLastCheckpointDuration());
-        writer.writeLong(metrics.getLastCheckpointLockWaitDuration());
-        writer.writeLong(metrics.getLastCheckpointMarkDuration());
-        writer.writeLong(metrics.getLastCheckpointPagesWriteDuration());
-        writer.writeLong(metrics.getLastCheckpointFsyncDuration());
-        writer.writeLong(metrics.getLastCheckpointTotalPagesNumber());
-        writer.writeLong(metrics.getLastCheckpointDataPagesNumber());
-        writer.writeLong(metrics.getLastCheckpointCopiedOnWritePagesNumber());
-    }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
index 16dc5f03972..368a2c3b767 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestCommand.java
@@ -216,9 +216,6 @@ public enum GridRestCommand {
     /** Data region metrics. */
     DATA_REGION_METRICS("dataregion"),
 
-    /** Data storage metrics. */
-    DATA_STORAGE_METRICS("datastorage"),
-
     /** Node state before its start. */
     NODE_STATE_BEFORE_START("nodestatebeforestart"),
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
index 24f047e31c8..b3221f7212f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/GridRestProcessor.java
@@ -935,7 +935,6 @@ public class GridRestProcessor extends GridProcessorAdapter 
implements IgniteRes
                 break;
 
             case DATA_REGION_METRICS:
-            case DATA_STORAGE_METRICS:
             case CACHE_METRICS:
             case CACHE_SIZE:
             case CACHE_METADATA:
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/memory/MemoryMetricsCommandHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/memory/MemoryMetricsCommandHandler.java
index 83ae052ee71..949b0a32aa6 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/memory/MemoryMetricsCommandHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/memory/MemoryMetricsCommandHandler.java
@@ -19,7 +19,6 @@ package 
org.apache.ignite.internal.processors.rest.handlers.memory;
 
 import java.util.Collection;
 import org.apache.ignite.DataRegionMetrics;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.rest.GridRestCommand;
@@ -30,17 +29,16 @@ import 
org.apache.ignite.internal.util.future.GridFinishedFuture;
 import org.apache.ignite.internal.util.typedef.internal.U;
 
 import static 
org.apache.ignite.internal.processors.rest.GridRestCommand.DATA_REGION_METRICS;
-import static 
org.apache.ignite.internal.processors.rest.GridRestCommand.DATA_STORAGE_METRICS;
 
 /**
- * Command handler for {@link DataStorageMetrics} or a collection of {@link 
DataRegionMetrics}
+ * Command handler for a collection of {@link DataRegionMetrics}
  */
 public class MemoryMetricsCommandHandler extends GridRestCommandHandlerAdapter 
{
     /**
      * Supported commands.
      */
     private static final Collection<GridRestCommand> SUPPORTED_COMMANDS = 
U.sealList(
-        DATA_STORAGE_METRICS, DATA_REGION_METRICS);
+        DATA_REGION_METRICS);
 
     /**
      * @param ctx Context.
@@ -67,12 +65,6 @@ public class MemoryMetricsCommandHandler extends 
GridRestCommandHandlerAdapter {
             case DATA_REGION_METRICS:
                 return new GridFinishedFuture<>(new 
GridRestResponse(ctx.grid().dataRegionMetrics()));
 
-            case DATA_STORAGE_METRICS:
-                if 
(ctx.config().getDataStorageConfiguration().isMetricsEnabled())
-                    return new GridFinishedFuture<>(new 
GridRestResponse(ctx.grid().dataStorageMetrics()));
-                else
-                    return new GridFinishedFuture<>(new 
GridRestResponse("Storage metrics are not enabled"));
-
             default:
                 return new GridFinishedFuture<>(new 
GridRestResponse(GridRestResponse.STATUS_FAILED, "Unknown command"));
         }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorDataStorageConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorDataStorageConfiguration.java
index 8dad47ce544..dbb941a763a 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorDataStorageConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorDataStorageConfiguration.java
@@ -86,9 +86,6 @@ public class VisorDataStorageConfiguration extends 
VisorDataTransferObject {
     /** WAL archive path. */
     private String walArchivePath;
 
-    /** Metrics enabled flag. */
-    private boolean metricsEnabled;
-
     /** Wal mode. */
     private WALMode walMode;
 
@@ -168,7 +165,6 @@ public class VisorDataStorageConfiguration extends 
VisorDataTransferObject {
         walSegmentSize = cfg.getWalSegmentSize();
         walPath = cfg.getWalPath();
         walArchivePath = cfg.getWalArchivePath();
-        metricsEnabled = cfg.isMetricsEnabled();
         walMode = cfg.getWalMode();
         walTlbSize = cfg.getWalThreadLocalBufferSize();
         walBufSize = cfg.getWalBufferSize();
@@ -297,13 +293,6 @@ public class VisorDataStorageConfiguration extends 
VisorDataTransferObject {
         return walArchivePath;
     }
 
-    /**
-     * @return Metrics enabled flag.
-     */
-    public boolean isMetricsEnabled() {
-        return metricsEnabled;
-    }
-
     /**
      * @return Time interval in milliseconds.
      */
@@ -426,7 +415,6 @@ public class VisorDataStorageConfiguration extends 
VisorDataTransferObject {
         out.writeInt(walSegmentSize);
         U.writeString(out, walPath);
         U.writeString(out, walArchivePath);
-        out.writeBoolean(metricsEnabled);
         U.writeEnum(out, walMode);
         out.writeInt(walTlbSize);
         out.writeLong(walFlushFreq);
@@ -462,7 +450,6 @@ public class VisorDataStorageConfiguration extends 
VisorDataTransferObject {
         walSegmentSize = in.readInt();
         walPath = U.readString(in);
         walArchivePath = U.readString(in);
-        metricsEnabled = in.readBoolean();
         walMode = WALMode.fromOrdinal(in.readByte());
         walTlbSize = in.readInt();
         walFlushFreq = in.readLong();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
index 6736afc4995..86ae5de2f7b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJob.java
@@ -236,20 +236,6 @@ public class VisorNodeDataCollectorJob extends 
VisorJob<VisorNodeDataCollectorTa
         }
     }
 
-    /**
-     * Collect persistence metrics.
-     *
-     * @param res Job result.
-     */
-    protected void persistenceMetrics(VisorNodeDataCollectorJobResult res) {
-        try {
-            res.setPersistenceMetrics(new 
VisorPersistenceMetrics(ignite.dataStorageMetrics()));
-        }
-        catch (Exception e) {
-            res.setPersistenceMetricsEx(new VisorExceptionWrapper(e));
-        }
-    }
-
     /** {@inheritDoc} */
     @Override protected VisorNodeDataCollectorJobResult 
run(VisorNodeDataCollectorTaskArg arg) {
         return run(new VisorNodeDataCollectorJobResult(), arg);
@@ -289,12 +275,7 @@ public class VisorNodeDataCollectorJob extends 
VisorJob<VisorNodeDataCollectorTa
             caches(res, arg);
 
         if (debug)
-            start0 = log(ignite.log(), "Collected caches", getClass(), start0);
-
-        persistenceMetrics(res);
-
-        if (debug)
-            log(ignite.log(), "Collected persistence metrics", getClass(), 
start0);
+            log(ignite.log(), "Collected caches", getClass(), start0);
 
         res.setErrorCount(ignite.context().exceptionRegistry().errorCount());
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
index e3501572a65..c6c01c2a9de 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorJobResult.java
@@ -84,12 +84,6 @@ public class VisorNodeDataCollectorJobResult extends 
VisorDataTransferObject {
     /** Whether pending exchange future exists. */
     private boolean hasPendingExchange;
 
-    /** Persistence metrics. */
-    private VisorPersistenceMetrics persistenceMetrics;
-
-    /** Exception while collecting persistence metrics. */
-    private VisorExceptionWrapper persistenceMetricsEx;
-
     /** Rebalance percent. */
     private double rebalance;
 
@@ -275,36 +269,6 @@ public class VisorNodeDataCollectorJobResult extends 
VisorDataTransferObject {
         this.hasPendingExchange = hasPendingExchange;
     }
 
-    /**
-     * Get persistence metrics.
-     */
-    public VisorPersistenceMetrics getPersistenceMetrics() {
-        return persistenceMetrics;
-    }
-
-    /**
-     * Set persistence metrics.
-     *
-     * @param persistenceMetrics Persistence metrics.
-     */
-    public void setPersistenceMetrics(VisorPersistenceMetrics 
persistenceMetrics) {
-        this.persistenceMetrics = persistenceMetrics;
-    }
-
-    /**
-     * @return Exception caught during collecting persistence metrics.
-     */
-    public VisorExceptionWrapper getPersistenceMetricsEx() {
-        return persistenceMetricsEx;
-    }
-
-    /**
-     * @param persistenceMetricsEx Exception caught during collecting 
persistence metrics.
-     */
-    public void setPersistenceMetricsEx(VisorExceptionWrapper 
persistenceMetricsEx) {
-        this.persistenceMetricsEx = persistenceMetricsEx;
-    }
-
     /**
      * @return Rebalance progress.
      */
@@ -341,8 +305,6 @@ public class VisorNodeDataCollectorJobResult extends 
VisorDataTransferObject {
         out.writeLong(errCnt);
         out.writeObject(readyTopVer);
         out.writeBoolean(hasPendingExchange);
-        out.writeObject(persistenceMetrics);
-        out.writeObject(persistenceMetricsEx);
         out.writeDouble(rebalance);
     }
 
@@ -363,8 +325,6 @@ public class VisorNodeDataCollectorJobResult extends 
VisorDataTransferObject {
         errCnt = in.readLong();
         readyTopVer = (VisorAffinityTopologyVersion)in.readObject();
         hasPendingExchange = in.readBoolean();
-        persistenceMetrics = (VisorPersistenceMetrics)in.readObject();
-        persistenceMetricsEx = (VisorExceptionWrapper)in.readObject();
         rebalance = (protoVer > V1) ? in.readDouble() : -1;
     }
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
index 067c57ba180..06d538434f3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTask.java
@@ -121,12 +121,6 @@ public class VisorNodeDataCollectorTask extends 
VisorMultiNodeTask<VisorNodeData
         if (jobRes.getIgfssEx() != null)
             taskRes.getIgfssEx().put(nid, jobRes.getIgfssEx());
 
-        if (jobRes.getPersistenceMetrics() != null)
-            taskRes.getPersistenceMetrics().put(nid, 
jobRes.getPersistenceMetrics());
-
-        if (jobRes.getPersistenceMetricsEx() != null)
-            taskRes.getPersistenceMetricsEx().put(nid, 
jobRes.getPersistenceMetricsEx());
-
         taskRes.getReadyAffinityVersions().put(nid, 
jobRes.getReadyAffinityVersion());
 
         taskRes.getPendingExchanges().put(nid, jobRes.isHasPendingExchange());
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
index f8eb8690ce2..9b0c0a13ea1 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorNodeDataCollectorTaskResult.java
@@ -94,12 +94,6 @@ public class VisorNodeDataCollectorTaskResult extends 
VisorDataTransferObject {
     /** Whether pending exchange future exists from nodes. */
     private Map<UUID, Boolean> pendingExchanges = new HashMap<>();
 
-    /** All persistence metrics collected from nodes. */
-    private Map<UUID, VisorPersistenceMetrics> persistenceMetrics = new 
HashMap<>();
-
-    /** Exceptions caught during collecting persistence metrics from nodes. */
-    private Map<UUID, VisorExceptionWrapper> persistenceMetricsEx = new 
HashMap<>();
-
     /** Rebalance state on nodes. */
     private Map<UUID, Double> rebalance = new HashMap<>();
 
@@ -130,8 +124,6 @@ public class VisorNodeDataCollectorTaskResult extends 
VisorDataTransferObject {
             igfssEx.isEmpty() &&
             readyTopVers.isEmpty() &&
             pendingExchanges.isEmpty() &&
-            persistenceMetrics.isEmpty() &&
-            persistenceMetricsEx.isEmpty() &&
             rebalance.isEmpty();
     }
 
@@ -261,20 +253,6 @@ public class VisorNodeDataCollectorTaskResult extends 
VisorDataTransferObject {
         return pendingExchanges;
     }
 
-    /**
-     * All persistence metrics collected from nodes.
-     */
-    public Map<UUID, VisorPersistenceMetrics> getPersistenceMetrics() {
-        return persistenceMetrics;
-    }
-
-    /**
-     * @return Exceptions caught during collecting persistence metrics from 
nodes.
-     */
-    public Map<UUID, VisorExceptionWrapper> getPersistenceMetricsEx() {
-        return persistenceMetricsEx;
-    }
-
     /**
      * @return Rebalance on nodes.
      */
@@ -312,8 +290,6 @@ public class VisorNodeDataCollectorTaskResult extends 
VisorDataTransferObject {
         igfssEx.putAll(res.getIgfssEx());
         readyTopVers.putAll(res.getReadyAffinityVersions());
         pendingExchanges.putAll(res.getPendingExchanges());
-        persistenceMetrics.putAll(res.getPersistenceMetrics());
-        persistenceMetricsEx.putAll(res.getPersistenceMetricsEx());
         rebalance.putAll(res.getRebalance());
     }
 
@@ -336,8 +312,6 @@ public class VisorNodeDataCollectorTaskResult extends 
VisorDataTransferObject {
         U.writeMap(out, igfssEx);
         U.writeMap(out, readyTopVers);
         U.writeMap(out, pendingExchanges);
-        U.writeMap(out, persistenceMetrics);
-        U.writeMap(out, persistenceMetricsEx);
         U.writeMap(out, rebalance);
     }
 
@@ -360,8 +334,6 @@ public class VisorNodeDataCollectorTaskResult extends 
VisorDataTransferObject {
         igfssEx = U.readMap(in);
         readyTopVers = U.readMap(in);
         pendingExchanges = U.readMap(in);
-        persistenceMetrics = U.readMap(in);
-        persistenceMetricsEx = U.readMap(in);
 
         if (protoVer > V1)
             rebalance = U.readMap(in);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistenceMetrics.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistenceMetrics.java
deleted file mode 100644
index 6f506ca7fd7..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistenceMetrics.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ignite.internal.visor.node;
-
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-import org.apache.ignite.DataStorageMetrics;
-import org.apache.ignite.internal.util.typedef.internal.S;
-import org.apache.ignite.internal.visor.VisorDataTransferObject;
-
-/**
- * DTO object for {@link DataStorageMetrics}.
- */
-public class VisorPersistenceMetrics extends VisorDataTransferObject {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private float walLoggingRate;
-
-    /** */
-    private float walWritingRate;
-
-    /** */
-    private int walArchiveSegments;
-
-    /** */
-    private float walFsyncTimeAvg;
-
-    /** */
-    private long walBufPollSpinRate;
-
-    /** */
-    private long walSz;
-
-    /** */
-    private long walLastRollOverTm;
-
-    /** */
-    private long cpTotalTm;
-
-    /** */
-    private long lastCpDuration;
-
-    /** */
-    private long lastCpStart;
-
-    /** */
-    private long lastCpLockWaitDuration;
-
-    /** */
-    private long lastCpMmarkDuration;
-
-    /** */
-    private long lastCpPagesWriteDuration;
-
-    /** */
-    private long lastCpFsyncDuration;
-
-    /** */
-    private long lastCpTotalPages;
-
-    /** */
-    private long lastCpDataPages;
-
-    /** */
-    private long lastCpCowPages;
-
-    /** */
-    private long dirtyPages;
-
-    /** */
-    private long pagesRead;
-
-    /** */
-    private long pagesWritten;
-
-    /** */
-    private long pagesReplaced;
-
-    /** */
-    private long offHeapSz;
-
-    /** */
-    private long offheapUsedSz;
-
-    /** */
-    private long usedCpBufPages;
-
-    /** */
-    private long usedCpBufSz;
-
-    /** */
-    private long cpBufSz;
-
-    /** */
-    private long totalSz;
-
-    /** */
-    private long storageSize;
-
-    /** */
-    private long sparseStorageSize;
-
-    /**
-     * Default constructor.
-     */
-    public VisorPersistenceMetrics() {
-        // No-op.
-    }
-
-    /**
-     * @param m Persistence metrics.
-     */
-    public VisorPersistenceMetrics(DataStorageMetrics m) {
-        walLoggingRate = m.getWalLoggingRate();
-        walWritingRate = m.getWalWritingRate();
-        walArchiveSegments = m.getWalArchiveSegments();
-        walFsyncTimeAvg = m.getWalFsyncTimeAverage();
-        walBufPollSpinRate = m.getWalBuffPollSpinsRate();
-        walSz = m.getWalTotalSize();
-        walLastRollOverTm = m.getWalLastRollOverTime();
-
-        cpTotalTm = m.getCheckpointTotalTime();
-
-        lastCpDuration = m.getLastCheckpointDuration();
-        lastCpStart = m.getLastCheckpointStarted();
-        lastCpLockWaitDuration = m.getLastCheckpointLockWaitDuration();
-        lastCpMmarkDuration = m.getLastCheckpointMarkDuration();
-        lastCpPagesWriteDuration = m.getLastCheckpointPagesWriteDuration();
-        lastCpFsyncDuration = m.getLastCheckpointFsyncDuration();
-        lastCpTotalPages = m.getLastCheckpointTotalPagesNumber();
-        lastCpDataPages = m.getLastCheckpointDataPagesNumber();
-        lastCpCowPages = m.getLastCheckpointCopiedOnWritePagesNumber();
-
-        dirtyPages = m.getDirtyPages();
-        pagesRead = m.getPagesRead();
-        pagesWritten = m.getPagesWritten();
-        pagesReplaced = m.getPagesReplaced();
-
-        offHeapSz = m.getOffHeapSize();
-        offheapUsedSz = m.getOffheapUsedSize();
-
-        usedCpBufPages = m.getUsedCheckpointBufferPages();
-        usedCpBufSz = m.getUsedCheckpointBufferSize();
-        cpBufSz = m.getCheckpointBufferSize();
-
-        totalSz = m.getTotalAllocatedSize();
-
-        storageSize = m.getStorageSize();
-        sparseStorageSize = m.getSparseStorageSize();
-    }
-
-    /**
-     * @return Average number of WAL records per second written during the 
last time interval.
-     */
-    public float getWalLoggingRate() {
-        return walLoggingRate;
-    }
-
-    /**
-     * @return Average number of bytes per second written during the last time 
interval.
-     */
-    public float getWalWritingRate() {
-        return walWritingRate;
-    }
-
-    /**
-     * @return Current number of WAL segments in the WAL archive.
-     */
-    public int getWalArchiveSegments() {
-        return walArchiveSegments;
-    }
-
-    /**
-     * @return Average WAL fsync duration in microseconds over the last time 
interval.
-     */
-    public float getWalFsyncTimeAverage() {
-        return walFsyncTimeAvg;
-    }
-
-    /**
-     * @return WAL buffer poll spins number over the last time interval.
-     */
-    public long getWalBuffPollSpinsRate() {
-        return walBufPollSpinRate;
-    }
-
-    /**
-     * @return Total size in bytes for storage WAL files.
-     */
-    public long getWalTotalSize() {
-        return walSz;
-    }
-
-    /**
-     * @return Time of the last WAL segment rollover.
-     */
-    public long getWalLastRollOverTime() {
-        return walLastRollOverTm;
-    }
-
-    /**
-     * @return Total checkpoint time from last restart.
-     */
-    public long getCheckpointTotalTime() {
-        return cpTotalTm;
-    }
-
-    /**
-     * @return Total checkpoint duration in milliseconds.
-     */
-    public long getLastCheckpointingDuration() {
-        return lastCpDuration;
-    }
-
-    /**
-     * Returns time when the last checkpoint was started.
-     *
-     * @return Time when the last checkpoint was started.
-     * */
-    public long getLastCheckpointStarted() {
-        return lastCpStart;
-    }
-
-    /**
-     * @return Checkpoint lock wait time in milliseconds.
-     */
-    public long getLastCheckpointLockWaitDuration() {
-        return lastCpLockWaitDuration;
-    }
-
-    /**
-     * @return Checkpoint mark duration in milliseconds.
-     */
-    public long getLastCheckpointMarkDuration() {
-        return lastCpMmarkDuration;
-    }
-
-    /**
-     * @return Checkpoint pages write phase in milliseconds.
-     */
-    public long getLastCheckpointPagesWriteDuration() {
-        return lastCpPagesWriteDuration;
-    }
-
-    /**
-     * @return Checkpoint fsync time in milliseconds.
-     */
-    public long getLastCheckpointFsyncDuration() {
-        return lastCpFsyncDuration;
-    }
-
-    /**
-     * @return Total number of pages written during the last checkpoint.
-     */
-    public long getLastCheckpointTotalPagesNumber() {
-        return lastCpTotalPages;
-    }
-
-    /**
-     * @return Total number of data pages written during the last checkpoint.
-     */
-    public long getLastCheckpointDataPagesNumber() {
-        return lastCpDataPages;
-    }
-
-    /**
-     * @return Total number of pages copied to a temporary checkpoint buffer 
during the last checkpoint.
-     */
-    public long getLastCheckpointCopiedOnWritePagesNumber() {
-        return lastCpCowPages;
-    }
-
-    /**
-     * @return Total dirty pages for the next checkpoint.
-     */
-    public long getDirtyPages() {
-        return dirtyPages;
-    }
-
-    /**
-     * @return The number of read pages from last restart.
-     */
-    public long getPagesRead() {
-        return pagesRead;
-    }
-
-    /**
-     * @return The number of written pages from last restart.
-     */
-    public long getPagesWritten() {
-        return pagesWritten;
-    }
-
-    /**
-     * @return The number of replaced pages from last restart.
-     */
-    public long getPagesReplaced() {
-        return pagesReplaced;
-    }
-
-    /**
-     * @return Total offheap size in bytes.
-     */
-    public long getOffHeapSize() {
-        return offHeapSz;
-    }
-
-    /**
-     * @return Total used offheap size in bytes.
-     */
-    public long getOffheapUsedSize() {
-        return offheapUsedSz;
-    }
-
-    /**
-     * @return Checkpoint buffer size in pages.
-     */
-    public long getUsedCheckpointBufferPages() {
-        return usedCpBufPages;
-    }
-
-    /**
-     * @return Checkpoint buffer size in bytes.
-     */
-    public long getUsedCheckpointBufferSize() {
-        return usedCpBufSz;
-    }
-
-    /**
-     * @return Checkpoint buffer size in bytes.
-     */
-    public long getCheckpointBufferSize() {
-        return cpBufSz;
-    }
-
-    /**
-     * @return Total size of memory allocated in bytes.
-     */
-    public long getTotalAllocatedSize() {
-        return totalSz;
-    }
-
-    /**
-     * @return Storage space allocated in bytes.
-     */
-    public long getStorageSize() {
-        return storageSize;
-    }
-
-    /**
-     * @return Storage space allocated adjusted for possible sparsity in bytes.
-     */
-    public long getSparseStorageSize() {
-        return sparseStorageSize;
-    }
-
-    /** {@inheritDoc} */
-    @Override public byte getProtocolVersion() {
-        return V5;
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void writeExternalData(ObjectOutput out) throws 
IOException {
-        out.writeFloat(walLoggingRate);
-        out.writeFloat(walWritingRate);
-        out.writeInt(walArchiveSegments);
-        out.writeFloat(walFsyncTimeAvg);
-        out.writeLong(lastCpDuration);
-        out.writeLong(lastCpLockWaitDuration);
-        out.writeLong(lastCpMmarkDuration);
-        out.writeLong(lastCpPagesWriteDuration);
-        out.writeLong(lastCpFsyncDuration);
-        out.writeLong(lastCpTotalPages);
-        out.writeLong(lastCpDataPages);
-        out.writeLong(lastCpCowPages);
-
-        // V2
-        out.writeLong(walBufPollSpinRate);
-        out.writeLong(walSz);
-        out.writeLong(walLastRollOverTm);
-        out.writeLong(cpTotalTm);
-        out.writeLong(dirtyPages);
-        out.writeLong(pagesRead);
-        out.writeLong(pagesWritten);
-        out.writeLong(pagesReplaced);
-        out.writeLong(offHeapSz);
-        out.writeLong(offheapUsedSz);
-        out.writeLong(usedCpBufPages);
-        out.writeLong(usedCpBufSz);
-        out.writeLong(cpBufSz);
-        out.writeLong(totalSz);
-
-        // V3
-        out.writeLong(storageSize);
-        out.writeLong(sparseStorageSize);
-
-        // V4
-        out.writeLong(lastCpStart);
-    }
-
-    /** {@inheritDoc} */
-    @Override protected void readExternalData(byte protoVer, ObjectInput in) 
throws IOException, ClassNotFoundException {
-        walLoggingRate = in.readFloat();
-        walWritingRate = in.readFloat();
-        walArchiveSegments = in.readInt();
-        walFsyncTimeAvg = in.readFloat();
-        lastCpDuration = in.readLong();
-        lastCpLockWaitDuration = in.readLong();
-        lastCpMmarkDuration = in.readLong();
-        lastCpPagesWriteDuration = in.readLong();
-        lastCpFsyncDuration = in.readLong();
-        lastCpTotalPages = in.readLong();
-        lastCpDataPages = in.readLong();
-        lastCpCowPages = in.readLong();
-
-        if (protoVer > V1) {
-            walBufPollSpinRate = in.readLong();
-            walSz = in.readLong();
-            walLastRollOverTm = in.readLong();
-            cpTotalTm = in.readLong();
-            dirtyPages = in.readLong();
-            pagesRead = in.readLong();
-            pagesWritten = in.readLong();
-            pagesReplaced = in.readLong();
-            offHeapSz = in.readLong();
-            offheapUsedSz = in.readLong();
-            usedCpBufPages = in.readLong();
-            usedCpBufSz = in.readLong();
-            cpBufSz = in.readLong();
-            totalSz = in.readLong();
-        }
-
-        if (protoVer > V2) {
-            storageSize = in.readLong();
-            sparseStorageSize = in.readLong();
-        }
-
-        if (protoVer > V3)
-            lastCpStart = in.readLong();
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(VisorPersistenceMetrics.class, this);
-    }
-}
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistentStoreConfiguration.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistentStoreConfiguration.java
index 986f0ee0c54..dad02deefd5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistentStoreConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/visor/node/VisorPersistentStoreConfiguration.java
@@ -62,9 +62,6 @@ public class VisorPersistentStoreConfiguration extends 
VisorDataTransferObject {
     /** WAL archive path. */
     private String walArchivePath;
 
-    /** Metrics enabled flag. */
-    private boolean metricsEnabled;
-
     /** Wal mode. */
     private WALMode walMode;
 
@@ -109,7 +106,6 @@ public class VisorPersistentStoreConfiguration extends 
VisorDataTransferObject {
         walSegmentSize = cfg.getWalSegmentSize();
         walStorePath = cfg.getWalPath();
         walArchivePath = cfg.getWalArchivePath();
-        metricsEnabled = cfg.isMetricsEnabled();
         walMode = cfg.getWalMode();
         tlbSize = cfg.getWalBufferSize();
         walFlushFreq = cfg.getWalFlushFrequency();
@@ -190,13 +186,6 @@ public class VisorPersistentStoreConfiguration extends 
VisorDataTransferObject {
         return walArchivePath;
     }
 
-    /**
-     * @return Metrics enabled flag.
-     */
-    public boolean isMetricsEnabled() {
-        return metricsEnabled;
-    }
-
     /**
      * @return Time interval in milliseconds.
      */
@@ -265,7 +254,6 @@ public class VisorPersistentStoreConfiguration extends 
VisorDataTransferObject {
         out.writeInt(walSegmentSize);
         U.writeString(out, walStorePath);
         U.writeString(out, walArchivePath);
-        out.writeBoolean(metricsEnabled);
         U.writeEnum(out, walMode);
         out.writeInt(tlbSize);
         out.writeLong(walFlushFreq);
@@ -288,7 +276,6 @@ public class VisorPersistentStoreConfiguration extends 
VisorDataTransferObject {
         walSegmentSize = in.readInt();
         walStorePath = U.readString(in);
         walArchivePath = U.readString(in);
-        metricsEnabled = in.readBoolean();
         walMode = WALMode.fromOrdinal(in.readByte());
         tlbSize = in.readInt();
         walFlushFreq = in.readLong();
diff --git 
a/modules/core/src/main/java/org/apache/ignite/mxbean/DataStorageMetricsMXBean.java
 
b/modules/core/src/main/java/org/apache/ignite/mxbean/DataStorageMetricsMXBean.java
deleted file mode 100644
index c038a670a0e..00000000000
--- 
a/modules/core/src/main/java/org/apache/ignite/mxbean/DataStorageMetricsMXBean.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.mxbean;
-
-import org.apache.ignite.DataStorageMetrics;
-import org.apache.ignite.configuration.DataStorageConfiguration;
-import org.apache.ignite.spi.metric.MetricExporterSpi;
-import org.apache.ignite.spi.metric.ReadOnlyMetricManager;
-import org.apache.ignite.spi.metric.ReadOnlyMetricRegistry;
-import org.apache.ignite.spi.metric.jmx.JmxMetricExporterSpi;
-
-/**
- * An MX bean allowing to monitor and tune persistence metrics.
- *
- * @deprecated Check the {@link JmxMetricExporterSpi} with 
"name=io.datastorage" instead.
- *
- * @see ReadOnlyMetricManager
- * @see ReadOnlyMetricRegistry
- * @see JmxMetricExporterSpi
- * @see MetricExporterSpi
- */
-@Deprecated
-public interface DataStorageMetricsMXBean extends DataStorageMetrics {
-    /** {@inheritDoc} */
-    @MXBeanDescription("Average number of WAL records per second written 
during the last time interval.")
-    @Override float getWalLoggingRate();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Average number of bytes per second written during the 
last time interval.")
-    @Override float getWalWritingRate();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Current number of WAL segments in the WAL archive.")
-    @Override int getWalArchiveSegments();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Average WAL fsync duration in microseconds over the 
last time interval.")
-    @Override float getWalFsyncTimeAverage();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("WAL buffer poll spins number over the last time 
interval.")
-    @Override long getWalBuffPollSpinsRate();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total size in bytes for storage wal files.")
-    @Override long getWalTotalSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Time of the last WAL segment rollover.")
-    @Override long getWalLastRollOverTime();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total checkpoint time from last restart.")
-    @Override long getCheckpointTotalTime();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Used checkpoint buffer size in pages.")
-    @Override long getUsedCheckpointBufferPages();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Used checkpoint buffer size in bytes.")
-    @Override long getUsedCheckpointBufferSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total size in bytes for checkpoint buffer.")
-    @Override long getCheckpointBufferSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Duration of the last checkpoint in milliseconds.")
-    @Override long getLastCheckpointDuration();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Time when the last checkpoint was started.")
-    @Override long getLastCheckpointStarted();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Duration of the checkpoint lock wait in milliseconds.")
-    @Override long getLastCheckpointLockWaitDuration();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Duration of the checkpoint mark in milliseconds.")
-    @Override long getLastCheckpointMarkDuration();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Duration of the checkpoint pages write in 
milliseconds.")
-    @Override long getLastCheckpointPagesWriteDuration();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Duration of the sync phase of the last checkpoint in 
milliseconds.")
-    @Override long getLastCheckpointFsyncDuration();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total number of pages written during the last 
checkpoint.")
-    @Override long getLastCheckpointTotalPagesNumber();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total number of data pages written during the last 
checkpoint.")
-    @Override long getLastCheckpointDataPagesNumber();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Number of pages copied to a temporary checkpoint 
buffer during the last checkpoint.")
-    @Override long getLastCheckpointCopiedOnWritePagesNumber();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total dirty pages for the next checkpoint.")
-    @Override long getDirtyPages();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("The number of read pages from last restart.")
-    @Override long getPagesRead();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("The number of written pages from last restart.")
-    @Override long getPagesWritten();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("The number of replaced pages from last restart.")
-    @Override long getPagesReplaced();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total offheap size in bytes.")
-    @Override long getOffHeapSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total used offheap size in bytes.")
-    @Override long getOffheapUsedSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Total size of memory allocated in bytes.")
-    @Override long getTotalAllocatedSize();
-
-    /**
-     * Enables persistence metrics collection on an Apache Ignite node.
-     */
-    @MXBeanDescription("Enables persistence metrics collection on an Apache 
Ignite node.")
-    public void enableMetrics();
-
-    /**
-     * Disables persistence metrics collection on an Apache Ignite node.
-     */
-    @MXBeanDescription("Disables persistence metrics collection on an Apache 
Ignite node.")
-    public void disableMetrics();
-
-    /**
-     * Sets time interval for rate-based metrics. Identical to setting
-     * {@link DataStorageConfiguration#setMetricsRateTimeInterval(long)} 
configuration property.
-     *
-     * @param rateTimeInterval Time interval (in milliseconds) used for 
allocation and eviction rates calculations.
-     * @deprecated Use {@link MetricsMxBean#configureHitRateMetric(String, 
long)} instead.
-     */
-    @MXBeanDescription(
-        "Sets time interval for pages allocation and eviction monitoring 
purposes."
-    )
-    @Deprecated
-    public void rateTimeInterval(
-        @MXBeanParameter(name = "rateTimeInterval", description = "Time 
interval (in milliseconds) to set.")
-            long rateTimeInterval
-    );
-
-    /**
-     * Sets a number of sub-intervals the whole {@link 
#rateTimeInterval(long)} will be split into to calculate
-     * rate-based metrics. Identical to setting {@link 
DataStorageConfiguration#setMetricsSubIntervalCount(int)} configuration
-     * property.
-     *
-     * @param subInts A number of sub-intervals.
-     * @deprecated Use {@link MetricsMxBean#configureHitRateMetric(String, 
long)} instead.
-     */
-    @MXBeanDescription(
-        "Sets a number of sub-intervals to calculate allocation and eviction 
rates metrics."
-    )
-    @Deprecated
-    public void subIntervals(
-        @MXBeanParameter(name = "subInts", description = "Number of 
subintervals to set.") int subInts
-    );
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Storage space allocated, in bytes.")
-    @Override long getStorageSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Storage space allocated adjusted for possible 
sparsity, in bytes.")
-    @Override long getSparseStorageSize();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Getting the total number of logged bytes into the 
WAL.")
-    @Override long getWalWrittenBytes();
-
-    /** {@inheritDoc} */
-    @MXBeanDescription("Getting the total size of the compressed segments in 
bytes.")
-    @Override long getWalCompressedBytes();
-}
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteDataStorageMetricsSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteDataStorageMetricsSelfTest.java
index 160be0a9bd8..abe7ebd2826 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteDataStorageMetricsSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/IgniteDataStorageMetricsSelfTest.java
@@ -31,7 +31,6 @@ import java.util.function.UnaryOperator;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.apache.ignite.DataRegionMetrics;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
@@ -60,7 +59,6 @@ import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.PAX;
 import org.apache.ignite.internal.util.typedef.internal.S;
 import org.apache.ignite.internal.util.typedef.internal.U;
-import org.apache.ignite.mxbean.DataStorageMetricsMXBean;
 import org.apache.ignite.spi.metric.HistogramMetric;
 import org.apache.ignite.spi.metric.LongMetric;
 import org.apache.ignite.testframework.ListeningTestLogger;
@@ -236,12 +234,12 @@ public class IgniteDataStorageMetricsSelfTest extends 
GridCommonAbstractTest {
 
             assertTrue(waitForCondition(new PAX() {
                 @Override public boolean applyx() {
-                    DataStorageMetrics pMetrics = ig.dataStorageMetrics();
+                    MetricRegistry pMetrics = 
ig.context().metric().registry(DATASTORAGE_METRIC_PREFIX);
 
                     assertNotNull(pMetrics);
 
-                    return pMetrics.getLastCheckpointTotalPagesNumber() != 0 &&
-                        pMetrics.getLastCheckpointDataPagesNumber() != 0;
+                    return 
pMetrics.<LongMetric>findMetric("LastCheckpointTotalPagesNumber").value() != 0 
&&
+                        
pMetrics.<LongMetric>findMetric("LastCheckpointDataPagesNumber").value() != 0;
                 }
             }, 10_000));
 
@@ -391,9 +389,7 @@ public class IgniteDataStorageMetricsSelfTest extends 
GridCommonAbstractTest {
 
         long exp = walMgr(n).lastWritePointer().fileOffset() - 
HEADER_RECORD_SIZE;
 
-        assertEquals(exp, 
dbMgr(n).persistentStoreMetrics().getWalWrittenBytes());
-        assertEquals(exp, dsMetricsMXBean(n).getWalWrittenBytes());
-        assertEquals(exp, 
((LongAdderMetric)dsMetricRegistry(n).findMetric("WalWrittenBytes")).value());
+        assertEquals(exp, 
dsMetricRegistry(n).<LongAdderMetric>findMetric("WalWrittenBytes").value());
     }
 
     /**
@@ -540,9 +536,7 @@ public class IgniteDataStorageMetricsSelfTest extends 
GridCommonAbstractTest {
         if (router.hasArchive())
             totalSize += walMgr.totalSize(walFiles(router.getWalArchiveDir()));
 
-        assertEquals(totalSize, 
dbMgr(igniteEx).persistentStoreMetrics().getWalTotalSize());
-        assertEquals(totalSize, dsMetricsMXBean(igniteEx).getWalTotalSize());
-        assertEquals(totalSize, 
((LongGauge)dsMetricRegistry(igniteEx).findMetric("WalTotalSize")).value());
+        assertEquals(totalSize, 
dsMetricRegistry(igniteEx).<LongGauge>findMetric("WalTotalSize").value());
     }
 
     /**
@@ -619,16 +613,6 @@ public class IgniteDataStorageMetricsSelfTest extends 
GridCommonAbstractTest {
         return n.context().metric().registry(DATASTORAGE_METRIC_PREFIX);
     }
 
-    /**
-     * Getting data storage MXBean.
-     *
-     * @param n Node.
-     * @return MXBean.
-     */
-    private DataStorageMetricsMXBean dsMetricsMXBean(IgniteEx n) {
-        return getMxBean(n.name(), "Persistent Store", "DataStorageMetrics", 
DataStorageMetricsMXBean.class);
-    }
-
     /**
      * Check that the metric of the total size compressed segment is working 
correctly.
      *
@@ -638,8 +622,6 @@ public class IgniteDataStorageMetricsSelfTest extends 
GridCommonAbstractTest {
         long exp = 
Arrays.stream(walMgr(n).walArchiveFiles()).filter(FileDescriptor::isCompressed)
             .mapToLong(fd -> fd.file().length()).sum();
 
-        assertEquals(exp, 
dbMgr(n).persistentStoreMetrics().getWalCompressedBytes());
-        assertEquals(exp, dsMetricsMXBean(n).getWalCompressedBytes());
-        assertEquals(exp, 
((LongAdderMetric)dsMetricRegistry(n).findMetric("WalCompressedBytes")).value());
+        assertEquals(exp, 
dsMetricRegistry(n).<LongAdderMetric>findMetric("WalCompressedBytes").value());
     }
 }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
index ffce687cbf6..eb7c31e79e7 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
@@ -23,7 +23,6 @@ import java.util.concurrent.ExecutorService;
 import javax.management.MBeanServer;
 import org.apache.ignite.DataRegionMetrics;
 import org.apache.ignite.DataRegionMetricsAdapter;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteAtomicLong;
 import org.apache.ignite.IgniteAtomicReference;
@@ -474,11 +473,6 @@ public class IgniteMock implements Ignite {
         return null;
     }
 
-    /** {@inheritDoc} */
-    @Override public DataStorageMetrics dataStorageMetrics() {
-        return null;
-    }
-
     /** {@inheritDoc} */
     @Override public IgniteEncryption encryption() {
         return null;
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
index 49364f1a3e6..3b06a49b4b3 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
@@ -33,7 +33,6 @@ import java.util.function.Supplier;
 import javax.cache.CacheException;
 import org.apache.ignite.DataRegionMetrics;
 import org.apache.ignite.DataRegionMetricsAdapter;
-import org.apache.ignite.DataStorageMetrics;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteAtomicLong;
 import org.apache.ignite.IgniteAtomicReference;
@@ -821,11 +820,6 @@ public class IgniteProcessProxy implements IgniteEx {
         throw new UnsupportedOperationException("Operation isn't supported 
yet.");
     }
 
-    /** {@inheritDoc} */
-    @Override public DataStorageMetrics dataStorageMetrics() {
-        throw new UnsupportedOperationException("Operation isn't supported 
yet.");
-    }
-
     /** {@inheritDoc} */
     @Override public IgniteEncryption encryption() {
         throw new UnsupportedOperationException("Operation isn't supported 
yet.");
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataStorageMetricsParityTest.cs
 
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataStorageMetricsParityTest.cs
deleted file mode 100644
index 92ffddf838f..00000000000
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ApiParity/DataStorageMetricsParityTest.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace Apache.Ignite.Core.Tests.ApiParity
-{
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests that <see cref="IDataStorageMetrics"/> has all APIs from Java 
Ignite interface.
-    /// </summary>
-    [Explicit(ParityTest.IgnoreReason)]
-    public class DataStorageMetricsParityTest
-    {
-        /** Properties that are missing on .NET side. */
-        private static readonly string[] MissingProperties =
-        {
-            // IGNITE-7305
-            "WalBuffPollSpinsRate",
-            "WalTotalSize",
-            "WalLastRollOverTime",
-            "CheckpointTotalTime",
-            "DirtyPages",
-            "PagesRead",
-            "PagesWritten",
-            "PagesReplaced",
-            "OffHeapSize",
-            "OffheapUsedSize",
-            "TotalAllocatedSize",
-            "UsedCheckpointBufferPages",
-            "UsedCheckpointBufferSize",
-            "CheckpointBufferSize",
-            // IGNITE-10332
-            "StorageSize",
-            "SparseStorageSize"
-        };
-
-        /// <summary>
-        /// Tests the API parity.
-        /// </summary>
-        [Test]
-        public void TestDataStorageMetrics()
-        {
-            ParityTest.CheckInterfaceParity(
-                
@"modules\core\src\main\java\org\apache\ignite\DataStorageMetrics.java",
-                typeof(IDataStorageMetrics), knownMissingMembers: 
MissingProperties);
-        }
-    }
-}
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataStorageMetricsTest.cs
 
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataStorageMetricsTest.cs
deleted file mode 100644
index d84d35f6dd2..00000000000
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/DataStorageMetricsTest.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace Apache.Ignite.Core.Tests.Cache
-{
-    using System;
-    using System.IO;
-    using System.Linq;
-    using Apache.Ignite.Core.Configuration;
-    using NUnit.Framework;
-
-    /// <summary>
-    /// Tests <see cref="IDataStorageMetrics"/>.
-    /// </summary>
-    public class DataStorageMetricsTest
-    {
-        /** Temp dir for WAL. */
-        private readonly string _tempDir = PathUtils.GetTempDirectoryName();
-
-        /// <summary>
-        /// Tests the data storage metrics.
-        /// </summary>
-        [Test]
-        public void TestDataStorageMetrics()
-        {
-            var cfg = new IgniteConfiguration(TestUtils.GetTestConfiguration())
-            {
-                DataStorageConfiguration = new DataStorageConfiguration
-                {
-                    CheckpointFrequency = TimeSpan.FromSeconds(5),
-                    MetricsEnabled = true,
-                    WalMode = WalMode.LogOnly,
-                    DefaultDataRegionConfiguration = new 
DataRegionConfiguration
-                    {
-                        PersistenceEnabled = true,
-                        Name = "foobar"
-                    }
-                },
-                WorkDirectory = _tempDir
-            };
-
-            using (var ignite = Ignition.Start(cfg))
-            {
-                ignite.GetCluster().SetActive(true);
-
-                var cache = ignite.CreateCache<int, object>("c");
-
-                cache.PutAll(Enumerable.Range(1, 10)
-                    .ToDictionary(x => x, x => (object) new {Name = 
x.ToString(), Id = x}));
-
-                // Wait for checkpoint and metrics update and verify.
-                IDataStorageMetrics metrics = null;
-
-                Assert.IsTrue(TestUtils.WaitForCondition(() =>
-                {
-                    // ReSharper disable once AccessToDisposedClosure
-                    metrics = ignite.GetDataStorageMetrics();
-
-                    return metrics.LastCheckpointTotalPagesNumber > 0;
-                }, 10000));
-
-                Assert.IsNotNull(metrics);
-
-                Assert.AreEqual(0, metrics.WalArchiveSegments);
-                Assert.Greater(metrics.WalFsyncTimeAverage, 0);
-
-                Assert.GreaterOrEqual(metrics.LastCheckpointTotalPagesNumber, 
1);
-                Assert.AreEqual(0, metrics.LastCheckpointDataPagesNumber);
-                
Assert.GreaterOrEqual(metrics.LastCheckpointCopiedOnWritePagesNumber, 0);
-                Assert.Greater(TimeSpan.FromSeconds(1), 
metrics.LastCheckpointLockWaitDuration);
-
-                Assert.Greater(metrics.LastCheckpointPagesWriteDuration, 
TimeSpan.Zero);
-                Assert.Greater(metrics.LastCheckpointMarkDuration, 
TimeSpan.Zero);
-                Assert.Greater(metrics.LastCheckpointDuration, TimeSpan.Zero);
-                Assert.Greater(metrics.LastCheckpointFsyncDuration, 
TimeSpan.Zero);
-
-                Assert.Greater(metrics.LastCheckpointDuration, 
metrics.LastCheckpointMarkDuration);
-                Assert.Greater(metrics.LastCheckpointDuration, 
metrics.LastCheckpointPagesWriteDuration);
-                Assert.Greater(metrics.LastCheckpointDuration, 
metrics.LastCheckpointFsyncDuration);
-            }
-        }
-
-        /// <summary>
-        /// Tears down the test.
-        /// </summary>
-        [TearDown]
-        public void TearDown()
-        {
-            Directory.Delete(_tempDir, true);
-        }
-    }
-}
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistenceTest.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistenceTest.cs
index 61678b11b0a..5d939e65201 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistenceTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistenceTest.cs
@@ -113,9 +113,6 @@ namespace Apache.Ignite.Core.Tests.Cache
                 });
                 cache[1] = 1;
 
-                // Check some metrics.
-                CheckDataStorageMetrics(ignite);
-
                 // Create cache with non-persistent region.
                 var volatileCache = ignite.CreateCache<int, int>(new 
CacheConfiguration
                 {
@@ -156,15 +153,6 @@ namespace Apache.Ignite.Core.Tests.Cache
             }
         }
 
-        /// <summary>
-        /// Checks that data storage metrics reflect some write operations.
-        /// </summary>
-        private static void CheckDataStorageMetrics(IIgnite ignite)
-        {
-            var metrics = ignite.GetDataStorageMetrics();
-            Assert.Greater(metrics.WalLoggingRate, 0);
-        }
-
         /// <summary>
         /// Tests the grid activation with persistence (inactive by default).
         /// </summary>
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistentStoreTestObsolete.cs
 
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistentStoreTestObsolete.cs
index 4cc31a8b3a8..dd3d2e2ccce 100644
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistentStoreTestObsolete.cs
+++ 
b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/PersistentStoreTestObsolete.cs
@@ -74,11 +74,6 @@ namespace Apache.Ignite.Core.Tests.Cache
                 var cache = ignite.CreateCache<int, int>(cacheName);
 
                 cache[1] = 1;
-
-                // Check some metrics.
-                var metrics = ignite.GetDataStorageMetrics();
-                Assert.Greater(metrics.WalLoggingRate, 0);
-                Assert.Greater(metrics.WalFsyncTimeAverage, 0);
             }
 
             // Verify directories.
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core/Configuration/DataStorageConfiguration.cs
 
b/modules/platforms/dotnet/Apache.Ignite.Core/Configuration/DataStorageConfiguration.cs
index b8cfe095571..81d1b91e429 100644
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core/Configuration/DataStorageConfiguration.cs
+++ 
b/modules/platforms/dotnet/Apache.Ignite.Core/Configuration/DataStorageConfiguration.cs
@@ -447,7 +447,7 @@ namespace Apache.Ignite.Core.Configuration
 
         /// <summary>
         /// Gets or sets a value indicating whether to enable data storage 
metrics.
-        /// See <see cref="IIgnite.GetDataStorageMetrics"/>.
+        /// See <see cref="IIgnite.GetMemoryMetrics()"/>.
         /// </summary>
         public bool MetricsEnabled { get; set; }
 
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IDataStorageMetrics.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core/IDataStorageMetrics.cs
deleted file mode 100644
index 6f3562d94cc..00000000000
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IDataStorageMetrics.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace Apache.Ignite.Core
-{
-    using System;
-
-    /// <summary>
-    /// Persistent store metrics.
-    /// </summary>
-    public interface IDataStorageMetrics
-    {
-        /// <summary>
-        /// Gets the average number of WAL records per second written during 
the last time interval. 
-        /// </summary>
-        float WalLoggingRate { get; }
-
-        /// <summary>
-        /// Gets the average number of bytes per second written during the 
last time interval.
-        /// </summary>
-        float WalWritingRate { get; }
-
-        /// <summary>
-        /// Gets the current number of WAL segments in the WAL archive.
-        /// </summary>
-        int WalArchiveSegments { get; }
-
-        /// <summary>
-        /// Gets the average WAL fsync duration in microseconds over the last 
time interval.
-        /// </summary>
-        float WalFsyncTimeAverage { get; }
-
-        /// <summary>
-        /// Gets the duration of the last checkpoint.
-        /// </summary>
-        TimeSpan LastCheckpointDuration { get; }
-
-        /// <summary>
-        /// Gets the duration of last checkpoint lock wait.
-        /// </summary>
-        TimeSpan LastCheckpointLockWaitDuration { get; }
-
-        /// <summary>
-        /// Gets the duration of last checkpoint mark phase.
-        /// </summary>
-        TimeSpan LastCheckpointMarkDuration { get; }
-
-        /// <summary>
-        /// Gets the duration of last checkpoint pages write phase.
-        /// </summary>
-        TimeSpan LastCheckpointPagesWriteDuration { get; }
-
-        /// <summary>
-        /// Gets the duration of the sync phase of the last checkpoint.
-        /// </summary>
-        TimeSpan LastCheckpointFsyncDuration { get; }
-
-        /// <summary>
-        /// Gets the total number of pages written during the last checkpoint.
-        /// </summary>
-        long LastCheckpointTotalPagesNumber { get; }
-
-        /// <summary>
-        /// Gets the number of data pages written during the last checkpoint.
-        /// </summary>
-        long LastCheckpointDataPagesNumber { get; }
-
-        /// <summary>
-        /// Gets the number of pages copied to a temporary checkpoint buffer 
during the last checkpoint.
-        /// </summary>
-        long LastCheckpointCopiedOnWritePagesNumber { get; }
-    }
-}
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
index b2a7a4b6393..0b9c67ddcda 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
@@ -435,7 +435,6 @@ namespace Apache.Ignite.Core
         /// Gets a collection of memory metrics, one for each
         /// <see cref="DataStorageConfiguration.DataRegionConfigurations"/>.
         /// <para />
-        /// Metrics should be enabled with <see 
cref="DataStorageConfiguration.MetricsEnabled"/>.
         /// </summary>
         ICollection<IDataRegionMetrics> GetDataRegionMetrics();
 
@@ -448,14 +447,6 @@ namespace Apache.Ignite.Core
         /// <param name="dataRegionName">Name of the data region.</param>
         IDataRegionMetrics GetDataRegionMetrics(string dataRegionName);
 
-        /// <summary>
-        /// Gets the persistent store metrics.
-        /// <para />
-        /// To enable metrics set <see 
cref="DataStorageConfiguration.MetricsEnabled"/> property
-        /// in <see cref="IgniteConfiguration.DataStorageConfiguration"/>.
-        /// </summary>
-        IDataStorageMetrics GetDataStorageMetrics();
-
         /// <summary>
         /// Adds cache configuration template. Name should contain *.
         /// Template settings are applied to a cache created with <see 
cref="CreateCache{K,V}(string)"/> if specified
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
index c99e35fecd8..773ab4487ae 100644
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
+++ 
b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cluster/ClusterGroupImpl.cs
@@ -146,9 +146,6 @@ namespace Apache.Ignite.Core.Impl.Cluster
         /** */
         private const int OpDataRegionMetricsByName = 36;
 
-        /** */
-        private const int OpDataStorageMetrics = 37;
-
         /** */
         private const int OpEnableStatistics = 38;
 
@@ -676,15 +673,6 @@ namespace Apache.Ignite.Core.Impl.Cluster
                 stream => stream.ReadBool() ? new 
DataRegionMetrics(Marshaller.StartUnmarshal(stream, false)) : null);
         }
 
-        /// <summary>
-        /// Gets the data storage metrics.
-        /// </summary>
-        public IDataStorageMetrics GetDataStorageMetrics()
-        {
-            return DoInOp(OpDataStorageMetrics, stream =>
-                new DataStorageMetrics(Marshaller.StartUnmarshal(stream, 
false)));
-        }
-
         /// <summary>
         /// Changes Ignite grid state to active or inactive.
         /// </summary>
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStorageMetrics.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStorageMetrics.cs
deleted file mode 100644
index 58b3b373c53..00000000000
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/DataStorageMetrics.cs
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-namespace Apache.Ignite.Core.Impl
-{
-    using System;
-    using System.Diagnostics;
-    using Apache.Ignite.Core.Binary;
-    using Apache.Ignite.Core.Impl.Binary;
-
-    /// <summary>
-    /// Data storage metrics.
-    /// </summary>
-    internal class DataStorageMetrics : IDataStorageMetrics
-    {
-        /// <summary>
-        /// Initializes a new instance of the <see cref="DataStorageMetrics"/> 
class.
-        /// </summary>
-        public DataStorageMetrics(IBinaryRawReader reader)
-        {
-            Debug.Assert(reader != null);
-
-            WalLoggingRate = reader.ReadFloat();
-            WalWritingRate = reader.ReadFloat();
-            WalArchiveSegments = reader.ReadInt();
-            WalFsyncTimeAverage = reader.ReadFloat();
-            LastCheckpointDuration = reader.ReadLongAsTimespan();
-            LastCheckpointLockWaitDuration = reader.ReadLongAsTimespan();
-            LastCheckpointMarkDuration = reader.ReadLongAsTimespan();
-            LastCheckpointPagesWriteDuration = reader.ReadLongAsTimespan();
-            LastCheckpointFsyncDuration = reader.ReadLongAsTimespan();
-            LastCheckpointTotalPagesNumber = reader.ReadLong();
-            LastCheckpointDataPagesNumber = reader.ReadLong();
-            LastCheckpointCopiedOnWritePagesNumber = reader.ReadLong();
-        }
-
-        /** <inheritdoc /> */
-        public float WalLoggingRate { get; private set; }
-
-        /** <inheritdoc /> */
-        public float WalWritingRate { get; private set; }
-
-        /** <inheritdoc /> */
-        public int WalArchiveSegments { get; private set; }
-
-        /** <inheritdoc /> */
-        public float WalFsyncTimeAverage { get; private set; }
-
-        /** <inheritdoc /> */
-        public TimeSpan LastCheckpointDuration { get; private set; }
-
-        /** <inheritdoc /> */
-        public TimeSpan LastCheckpointLockWaitDuration { get; private set; }
-
-        /** <inheritdoc /> */
-        public TimeSpan LastCheckpointMarkDuration { get; private set; }
-
-        /** <inheritdoc /> */
-        public TimeSpan LastCheckpointPagesWriteDuration { get; private set; }
-
-        /** <inheritdoc /> */
-        public TimeSpan LastCheckpointFsyncDuration { get; private set; }
-
-        /** <inheritdoc /> */
-        public long LastCheckpointTotalPagesNumber { get; private set; }
-
-        /** <inheritdoc /> */
-        public long LastCheckpointDataPagesNumber { get; private set; }
-
-        /** <inheritdoc /> */
-        public long LastCheckpointCopiedOnWritePagesNumber { get; private set; 
}
-    }
-}
\ No newline at end of file
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs 
b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
index 1438b4688e9..d1190c6641a 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
@@ -50,7 +50,6 @@ namespace Apache.Ignite.Core.Impl
     using Apache.Ignite.Core.Lifecycle;
     using Apache.Ignite.Core.Log;
     using Apache.Ignite.Core.Messaging;
-    using Apache.Ignite.Core.PersistentStore;
     using Apache.Ignite.Core.Services;
     using Apache.Ignite.Core.Transactions;
     using UU = Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils;
@@ -986,12 +985,6 @@ namespace Apache.Ignite.Core.Impl
             return _prj.GetDataRegionMetrics(memoryPolicyName);
         }
 
-        /** <inheritdoc /> */
-        public IDataStorageMetrics GetDataStorageMetrics()
-        {
-            return _prj.GetDataStorageMetrics();
-        }
-
         /** <inheritdoc /> */
         public void AddCacheConfiguration(CacheConfiguration configuration)
         {
diff --git 
a/modules/platforms/dotnet/Apache.Ignite.Core/PersistentStore/PersistentStoreConfiguration.cs
 
b/modules/platforms/dotnet/Apache.Ignite.Core/PersistentStore/PersistentStoreConfiguration.cs
index 9ae0a0bb882..aec4c3ae549 100644
--- 
a/modules/platforms/dotnet/Apache.Ignite.Core/PersistentStore/PersistentStoreConfiguration.cs
+++ 
b/modules/platforms/dotnet/Apache.Ignite.Core/PersistentStore/PersistentStoreConfiguration.cs
@@ -300,7 +300,7 @@ namespace Apache.Ignite.Core.PersistentStore
 
         /// <summary>
         /// Gets or sets a value indicating whether to enable persistent store 
metrics.
-        /// See <see cref="IIgnite.GetDataStorageMetrics"/>.
+        /// See <see cref="IIgnite.GetMemoryMetrics()"/>.
         /// </summary>
         public bool MetricsEnabled { get; set; }
 
diff --git 
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
 
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
index 65d565c29ee..05874457e88 100644
--- 
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
+++ 
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
@@ -723,7 +723,6 @@ public class GridJettyRestHandler extends AbstractHandler {
             }
 
             case DATA_REGION_METRICS:
-            case DATA_STORAGE_METRICS:
             case NAME:
             case VERSION:
             case PROBE: {
diff --git 
a/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java 
b/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
index c10af90d36a..d7955b567b5 100644
--- a/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
+++ b/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
@@ -304,13 +304,6 @@ public class IgniteSpringBean implements Ignite, 
DisposableBean, SmartInitializi
         return g.dataRegionMetrics(memPlcName);
     }
 
-    /** {@inheritDoc} */
-    @Override public DataStorageMetrics dataStorageMetrics() {
-        checkIgnite();
-
-        return g.dataStorageMetrics();
-    }
-
     /** {@inheritDoc} */
     @Override public IgniteEncryption encryption() {
         checkIgnite();

Reply via email to