IGNITE-49 Changed interface GridCacheMetrics

Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ea7f5252
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ea7f5252
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ea7f5252

Branch: refs/heads/ignite-49
Commit: ea7f5252e1f9d9473c9e7c83e835780c82a0ad99
Parents: 1fd63cd
Author: nikolay_tikhonov <ntikho...@gridgain.com>
Authored: Thu Jan 22 13:27:52 2015 +0300
Committer: nikolay_tikhonov <ntikho...@gridgain.com>
Committed: Thu Jan 22 13:27:52 2015 +0300

----------------------------------------------------------------------
 .../integration/GridClientAbstractSelfTest.java |  18 +--
 .../GridClientMemcachedProtocolSelfTest.java    |   4 +-
 .../rest/GridRestBinaryProtocolSelfTest.java    |   4 +-
 .../rest/GridRestMemcacheProtocolSelfTest.java  |   4 +-
 .../java/org/apache/ignite/IgniteCache.java     |   7 +
 .../org/apache/ignite/IgniteCacheManager.java   |  48 +++---
 .../apache/ignite/cache/CacheMetricsMXBean.java |  99 ------------
 .../processors/cache/IgniteCacheProxy.java      |  12 ++
 .../gridgain/grid/cache/CacheMetricsMxBean.java |  56 +++++++
 .../java/org/gridgain/grid/cache/GridCache.java |   2 +-
 .../gridgain/grid/cache/GridCacheMetrics.java   | 104 -------------
 .../processors/cache/GridCacheAdapter.java      |  51 +++++--
 .../cache/GridCacheMetricsAdapter.java          | 100 ++-----------
 .../processors/cache/GridCacheProxyImpl.java    |   2 +-
 .../handlers/cache/GridCacheCommandHandler.java |   9 +-
 .../handlers/cache/GridCacheRestMetrics.java    |  77 +---------
 .../kernal/visor/cache/VisorCacheMetrics.java   |  44 +++---
 .../cache/GridCacheAbstractMetricsSelfTest.java |  74 ++++-----
 ...cheTransactionalAbstractMetricsSelfTest.java |  16 +-
 ...ePartitionedNearDisabledMetricsSelfTest.java |  14 +-
 .../near/GridCacheNearMetricsSelfTest.java      | 150 +++++++++----------
 ...idCachePartitionedHitsAndMissesSelfTest.java |   6 +-
 22 files changed, 324 insertions(+), 577 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
 
b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
index 58d6894..010637f 100644
--- 
a/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
+++ 
b/modules/clients/src/test/java/org/gridgain/client/integration/GridClientAbstractSelfTest.java
@@ -957,31 +957,31 @@ public abstract class GridClientAbstractSelfTest extends 
GridCommonAbstractTest
 
         GridClientDataMetrics m = dfltData.metrics();
 
-        GridCacheMetrics metrics = grid().cache(null).metrics();
+        CacheMetricsMxBean metrics = grid().cache(null).metrics();
 
         assertNotNull(m);
-        assertEquals(metrics.reads(), m.reads());
-        assertEquals(metrics.writes(), m.writes());
+        assertEquals(metrics.getCacheGets(), m.reads());
+        assertEquals(metrics.getCachePuts(), m.writes());
 
         m = dfltData.metricsAsync().get();
 
         assertNotNull(m);
-        assertEquals(metrics.reads(), m.reads());
-        assertEquals(metrics.writes(), m.writes());
+        assertEquals(metrics.getCacheGets(), m.reads());
+        assertEquals(metrics.getCachePuts(), m.writes());
 
         m = namedData.metrics();
 
         metrics = grid().cache(CACHE_NAME).metrics();
 
         assertNotNull(m);
-        assertEquals(metrics.reads(), m.reads());
-        assertEquals(metrics.writes(), m.writes());
+        assertEquals(metrics.getCacheGets(), m.reads());
+        assertEquals(metrics.getCachePuts(), m.writes());
 
         m = namedData.metricsAsync().get();
 
         assertNotNull(m);
-        assertEquals(metrics.reads(), m.reads());
-        assertEquals(metrics.writes(), m.writes());
+        assertEquals(metrics.getCacheGets(), m.reads());
+        assertEquals(metrics.getCachePuts(), m.writes());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridClientMemcachedProtocolSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridClientMemcachedProtocolSelfTest.java
 
b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridClientMemcachedProtocolSelfTest.java
index 915c776..a41f847 100644
--- 
a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridClientMemcachedProtocolSelfTest.java
+++ 
b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridClientMemcachedProtocolSelfTest.java
@@ -257,7 +257,7 @@ public class GridClientMemcachedProtocolSelfTest extends 
GridAbstractRestProcess
 
         Map<String, String> stats = F.first(map.values());
 
-        Assert.assertEquals(7, stats.size());
+        Assert.assertEquals(4, stats.size());
         Assert.assertTrue(Integer.valueOf(stats.get("writes")) >= 1);
         Assert.assertTrue(Integer.valueOf(stats.get("reads")) >= 1);
 
@@ -270,7 +270,7 @@ public class GridClientMemcachedProtocolSelfTest extends 
GridAbstractRestProcess
 
         stats = F.first(map.values());
 
-        Assert.assertEquals(7, stats.size());
+        Assert.assertEquals(4, stats.size());
         Assert.assertTrue(Integer.valueOf(stats.get("writes")) >= 2);
         Assert.assertTrue(Integer.valueOf(stats.get("reads")) >= 2);
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
 
b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
index 323bf09..1e0f794 100644
--- 
a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
+++ 
b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestBinaryProtocolSelfTest.java
@@ -403,14 +403,14 @@ public class GridRestBinaryProtocolSelfTest extends 
GridCommonAbstractTest {
         Map<String, Long> m = client.cacheMetrics(null);
 
         assertNotNull(m);
-        assertEquals(7, m.size());
+        assertEquals(4, m.size());
         assertEquals(3, m.get("reads").longValue());
         assertEquals(3, m.get("writes").longValue());
 
         m = client.cacheMetrics(CACHE_NAME);
 
         assertNotNull(m);
-        assertEquals(7, m.size());
+        assertEquals(4, m.size());
         assertEquals(3, m.get("reads").longValue());
         assertEquals(3, m.get("writes").longValue());
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
 
b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
index a5b2a60..4e0f15d 100644
--- 
a/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
+++ 
b/modules/clients/src/test/java/org/gridgain/grid/kernal/processors/rest/GridRestMemcacheProtocolSelfTest.java
@@ -228,14 +228,14 @@ public class GridRestMemcacheProtocolSelfTest extends 
GridCommonAbstractTest {
         Map<String, Long> m = client.cacheMetrics(null);
 
         assertNotNull(m);
-        assertEquals(7, m.size());
+        assertEquals(4, m.size());
         assertEquals(3, m.get("reads").longValue());
         assertEquals(3, m.get("writes").longValue());
 
         m = client.cacheMetrics(CACHE_NAME);
 
         assertNotNull(m);
-        assertEquals(7, m.size());
+        assertEquals(4, m.size());
         assertEquals(3, m.get("reads").longValue());
         assertEquals(3, m.get("writes").longValue());
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java 
b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
index 1398ebe..edebee9 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
@@ -517,4 +517,11 @@ public interface IgniteCache<K, V> extends 
javax.cache.Cache<K, V>, IgniteAsyncS
      * @return Ignite instance.
      */
     public Ignite ignite();
+
+    /**
+     * Gets metrics (statistics) for this cache.
+     *
+     * @return Cache metrics.
+     */
+    public CacheMetricsMxBean metrics();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java 
b/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
index fea39ca..c4c329a 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCacheManager.java
@@ -36,6 +36,12 @@ import java.util.concurrent.atomic.*;
  */
 public class IgniteCacheManager implements CacheManager {
     /** */
+    private static final String CACHE_STATISTICS = "CacheStatistics";
+
+    /** */
+    private static final String CACHE_CONFIGURATION = "CacheConfiguration";
+
+    /** */
     private final Map<String, IgniteBiTuple<Ignite, IgniteCacheMXBean>> 
igniteMap = new HashMap<>();
 
     /** */
@@ -256,19 +262,17 @@ public class IgniteCacheManager implements CacheManager {
 
             MBeanServer mBeanSrv = 
tuple.get1().configuration().getMBeanServer();
 
-            unregisterCacheObject(mBeanSrv, cacheName, true);
+            unregisterCacheObject(mBeanSrv, cacheName, CACHE_STATISTICS);
 
-            unregisterCacheObject(mBeanSrv, cacheName, false);
+            unregisterCacheObject(mBeanSrv, cacheName, CACHE_CONFIGURATION);
         }
     }
 
     /**
      * @param cacheName Cache name.
      */
-    private ObjectName getObjectName(String cacheName, boolean isStatistic) {
-        String mbType = isStatistic ? "CacheStatistics" : "CacheConfiguration";
-
-        String mBeanName = "javax.cache:type=" + mbType + ",CacheManager="
+    private ObjectName getObjectName(String cacheName, String objectName) {
+        String mBeanName = "javax.cache:type=" + objectName + ",CacheManager="
             + uri.toString().replaceAll(",|:|=|\n", ".")
             + ",Cache=" + cacheName.replaceAll(",|:|=|\n", ".");
 
@@ -296,11 +300,11 @@ public class IgniteCacheManager implements CacheManager {
         MBeanServer mBeanSrv = tuple.get1().configuration().getMBeanServer();
 
         if (enabled) {
-            registerCacheObject(mBeanSrv, tuple.get2(), cacheName, false);
+            registerCacheObject(mBeanSrv, tuple.get2(), cacheName, 
CACHE_CONFIGURATION);
 
             
tuple.get1().cache(cacheName).configuration().setManagementEnabled(true);
         } else {
-            unregisterCacheObject(mBeanSrv, cacheName, false);
+            unregisterCacheObject(mBeanSrv, cacheName, CACHE_CONFIGURATION);
 
             
tuple.get1().cache(cacheName).configuration().setManagementEnabled(false);
         }
@@ -322,23 +326,21 @@ public class IgniteCacheManager implements CacheManager {
 
         Ignite ignite = tuple.get1();
 
-        GridCache cache = ignite.cache(cacheName);
+        IgniteCache<Object, Object> cache = ignite.jcache(cacheName);
 
-        GridCacheConfiguration configuration = 
ignite.jcache(cacheName).getConfiguration(GridCacheConfiguration.class);
+        GridCacheConfiguration cfg = 
cache.getConfiguration(GridCacheConfiguration.class);
 
         MBeanServer mBeanSrv = ignite.configuration().getMBeanServer();
 
         if (enabled) {
-            CacheMetricsMXBean mxBean = new CacheMetricsMXBean(cache);
-
-            registerCacheObject(mBeanSrv, mxBean, cacheName, true);
+            registerCacheObject(mBeanSrv, cache.metrics(), cacheName, 
CACHE_STATISTICS);
 
-            configuration.setStatisticsEnabled(true);
+            cfg.setStatisticsEnabled(true);
         }
         else {
-            unregisterCacheObject(mBeanSrv, cacheName, true);
+            unregisterCacheObject(mBeanSrv, cacheName, CACHE_STATISTICS);
 
-            configuration.setStatisticsEnabled(false);
+            cfg.setStatisticsEnabled(false);
         }
     }
 
@@ -346,8 +348,8 @@ public class IgniteCacheManager implements CacheManager {
      * @param mxbean MXBean.
      * @param name cache name.
      */
-    public void registerCacheObject(MBeanServer mBeanServer, Object mxbean, 
String name, boolean isStatistic) {
-        ObjectName registeredObjectName = getObjectName(name, isStatistic);
+    public void registerCacheObject(MBeanServer mBeanServer, Object mxbean, 
String name, String objectName) {
+        ObjectName registeredObjectName = getObjectName(name, objectName);
 
         try {
             if (!isRegistered(mBeanServer, registeredObjectName))
@@ -370,15 +372,15 @@ public class IgniteCacheManager implements CacheManager {
      * UnRegisters the mxbean if registered already.
      *
      * @param mBeanSrv MBean server
-     * @param name cache name.
-     * @param stats is mxbean, a statistics mxbean.
+     * @param name Cache name.
+     * @param objectName Mxbean name.
      */
-    public void unregisterCacheObject(MBeanServer mBeanSrv, String name, 
boolean stats) {
+    public void unregisterCacheObject(MBeanServer mBeanSrv, String name, 
String objectName) {
         Set<ObjectName> registeredObjectNames;
 
-        ObjectName objectName = getObjectName(name, stats);
+        ObjectName objName = getObjectName(name, objectName);
 
-        registeredObjectNames = mBeanSrv.queryNames(objectName, null);
+        registeredObjectNames = mBeanSrv.queryNames(objName, null);
 
         //should just be one
         for (ObjectName registeredObjectName : registeredObjectNames) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/apache/ignite/cache/CacheMetricsMXBean.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetricsMXBean.java 
b/modules/core/src/main/java/org/apache/ignite/cache/CacheMetricsMXBean.java
deleted file mode 100644
index 29a7805..0000000
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheMetricsMXBean.java
+++ /dev/null
@@ -1,99 +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.cache;
-
-import org.gridgain.grid.cache.*;
-
-import javax.cache.management.*;
-
-/**
- * Implementation of {@link CacheStatisticsMXBean}.
- */
-public class CacheMetricsMXBean implements CacheStatisticsMXBean {
-    /** Grid cache. */
-    private final GridCache cache;
-
-    /**
-     * Constructor.
-     *
-     * @param cache Cache.
-     */
-    public CacheMetricsMXBean(GridCache cache) {
-        this.cache = cache;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void clear() {
-        cache.resetMetrics();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheHits() {
-        return cache.metrics().hits();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getCacheHitPercentage() {
-        return cache.metrics().getCacheHitPercentage();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheMisses() {
-        return cache.metrics().getCacheMisses();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getCacheMissPercentage() {
-        return cache.metrics().getCacheMissPercentage();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheGets() {
-        return cache.metrics().getCacheGets();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCachePuts() {
-        return cache.metrics().getCachePuts();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheRemovals() {
-        return cache.metrics().getCacheRemovals();
-    }
-
-    /** {@inheritDoc} */
-    @Override public long getCacheEvictions() {
-        return cache.metrics().getCacheEvictions();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageGetTime() {
-        return cache.metrics().getAverageGetTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAveragePutTime() {
-        return cache.metrics().getAveragePutTime();
-    }
-
-    /** {@inheritDoc} */
-    @Override public float getAverageRemoveTime() {
-        return cache.metrics().getAverageRemoveTime();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index 31b17d8..4ae79b3 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@ -97,6 +97,18 @@ public class IgniteCacheProxy<K, V> extends 
IgniteAsyncSupportAdapter implements
     }
 
     /** {@inheritDoc} */
+    @Override public CacheMetricsMxBean metrics() {
+        GridCacheProjectionImpl<K, V> prev = gate.enter(prj);
+
+        try {
+            return ctx.cache().metrics();
+        }
+        finally {
+            gate.leave(prev);
+        }
+    }
+
+    /** {@inheritDoc} */
     @Override public <C extends Configuration<K, V>> C 
getConfiguration(Class<C> clazz) {
         GridCacheConfiguration cfg = ctx.config();
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/cache/CacheMetricsMxBean.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/cache/CacheMetricsMxBean.java 
b/modules/core/src/main/java/org/gridgain/grid/cache/CacheMetricsMxBean.java
new file mode 100644
index 0000000..63710fb
--- /dev/null
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/CacheMetricsMxBean.java
@@ -0,0 +1,56 @@
+/*
+ * 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.gridgain.grid.cache;
+
+import javax.cache.management.*;
+import org.apache.ignite.*;
+
+/**
+ * Cache metrics used to obtain statistics on cache itself.
+ * Use {@link IgniteCache#metrics()} to obtain metrics for a cache.
+ */
+public interface CacheMetricsMxBean extends CacheStatisticsMXBean {
+    /**
+     * The mean time to execute tx commit.
+     *
+     * @return the time in µs
+     */
+    public float getAverageTxCommitTime();
+
+    /**
+     * The mean time to execute tx rollbacks.
+     *
+     * @return Number of transaction rollbacks.
+     */
+    public float getAverageTxRollbackTime();
+
+
+    /**
+     * Gets total number of transaction commits.
+     *
+     * @return Number of transaction commits.
+     */
+    public int getCacheTxCommits();
+
+    /**
+     * Gets total number of transaction rollbacks.
+     *
+     * @return Number of transaction rollbacks.
+     */
+    public int getCacheTxRollbacks();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/cache/GridCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/gridgain/grid/cache/GridCache.java 
b/modules/core/src/main/java/org/gridgain/grid/cache/GridCache.java
index bc46201..753217f 100644
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCache.java
+++ b/modules/core/src/main/java/org/gridgain/grid/cache/GridCache.java
@@ -115,7 +115,7 @@ public interface GridCache<K, V> extends 
GridCacheProjection<K, V> {
      *
      * @return Cache metrics.
      */
-    public GridCacheMetrics metrics();
+    public CacheMetricsMxBean metrics();
 
     /**
      * Gets size (in bytes) of all entries swapped to disk.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheMetrics.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheMetrics.java 
b/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheMetrics.java
deleted file mode 100644
index d523c25..0000000
--- a/modules/core/src/main/java/org/gridgain/grid/cache/GridCacheMetrics.java
+++ /dev/null
@@ -1,104 +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.gridgain.grid.cache;
-
-import javax.cache.management.*;
-import java.io.*;
-
-/**
- * Cache metrics used to obtain statistics on cache itself.
- * Use {@link GridCache#metrics()} to obtain metrics for a cache.
- */
-public interface GridCacheMetrics extends CacheStatisticsMXBean, Serializable {
-    /**
-     * Gets create time of the owning entity (either cache or entry).
-     *
-     * @return Create time.
-     */
-    public long createTime();
-
-    /**
-     * Gets last write time of the owning entity (either cache or entry).
-     *
-     * @return Last write time.
-     */
-    public long writeTime();
-
-    /**
-     * Gets last read time of the owning entity (either cache or entry).
-     *
-     * @return Last read time.
-     */
-    public long readTime();
-
-    /**
-     * Gets last time transaction was committed.
-     *
-     * @return Last commit time.
-     */
-    public long commitTime();
-
-    /**
-     * Gets last time transaction was rollback.
-     *
-     * @return Last rollback time.
-     */
-    public long rollbackTime();
-
-    /**
-     * Gets total number of reads of the owning entity (either cache or entry).
-     *
-     * @return Total number of reads.
-     */
-    public int reads();
-
-    /**
-     * Gets total number of writes of the owning entity (either cache or 
entry).
-     *
-     * @return Total number of writes.
-     */
-    public int writes();
-
-    /**
-     * Gets total number of hits for the owning entity (either cache or entry).
-     *
-     * @return Number of hits.
-     */
-    public int hits();
-
-    /**
-     * Gets total number of misses for the owning entity (either cache or 
entry).
-     *
-     * @return Number of misses.
-     */
-    public int misses();
-
-    /**
-     * Gets total number of transaction commits.
-     *
-     * @return Number of transaction commits.
-     */
-    public int txCommits();
-
-    /**
-     * Gets total number of transaction rollbacks.
-     *
-     * @return Number of transaction rollbacks.
-     */
-    public int txRollbacks();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
index 258fd94..59421bf 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheAdapter.java
@@ -1749,19 +1749,7 @@ public abstract class GridCacheAdapter<K, V> extends 
GridMetadataAwareAdapter im
             });
 
         if (statsEnabled)
-            fut.listenAsync(new CI1<IgniteFuture<Map<K, V>>>() {
-                @Override public void apply(IgniteFuture<Map<K, V>> fut) {
-                    try {
-                        if (!fut.isCancelled()) {
-                            fut.get();
-
-                            
ctx.cache().metrics0().addGetTimeNanos(System.nanoTime() - start);
-                        }
-                    } catch (IgniteCheckedException ignore) {
-                        //No-op.
-                    }
-                }
-            });
+            fut.listenAsync(new UpdateGetTimeMetricsClosure<Map<K, 
V>>(ctx.cache().metrics0(), start));
 
         return fut;
     }
@@ -3552,8 +3540,8 @@ public abstract class GridCacheAdapter<K, V> extends 
GridMetadataAwareAdapter im
     }
 
     /** {@inheritDoc} */
-    @Override public GridCacheMetrics metrics() {
-        return GridCacheMetricsAdapter.copyOf(metrics);
+    @Override public CacheMetricsMxBean metrics() {
+        return metrics;
     }
 
     /**
@@ -5446,4 +5434,37 @@ public abstract class GridCacheAdapter<K, V> extends 
GridMetadataAwareAdapter im
             return S.toString(GetExpiryPolicy.class, this);
         }
     }
+
+    /**
+     *
+     */
+    protected static class UpdateGetTimeMetricsClosure<T> implements 
CI1<IgniteFuture<T>> {
+        /** */
+        private final GridCacheMetricsAdapter metrics;
+
+        /** */
+        private final long start;
+
+        /**
+         * @param metrics Metrics.
+         * @param start   Start time.
+         */
+        public UpdateGetTimeMetricsClosure(GridCacheMetricsAdapter metrics, 
long start) {
+            this.metrics = metrics;
+            this.start = start;
+        }
+
+        /** {@inheritDoc} */
+        @Override public void apply(IgniteFuture<T> fut) {
+            try {
+                if (!fut.isCancelled()) {
+                    fut.get();
+
+                    metrics.addGetTimeNanos(System.nanoTime() - start);
+                }
+            } catch (IgniteCheckedException ignore) {
+                //No-op.
+            }
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMetricsAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMetricsAdapter.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMetricsAdapter.java
index c570c97..e4c106b 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMetricsAdapter.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheMetricsAdapter.java
@@ -27,28 +27,13 @@ import java.io.*;
 /**
  * Adapter for cache metrics.
  */
-public class GridCacheMetricsAdapter implements GridCacheMetrics, 
Externalizable {
+public class GridCacheMetricsAdapter implements CacheMetricsMxBean, 
Externalizable {
     /** */
     private static final long NANOS_IN_MICROSECOND = 1000L;
 
     /** */
     private static final long serialVersionUID = 0L;
 
-    /** Create time. */
-    private long createTime = U.currentTimeMillis();
-
-    /** Last read time. */
-    private volatile long readTime = createTime;
-
-    /** Last update time. */
-    private volatile long writeTime = createTime;
-
-    /** Last commit time. */
-    private volatile long commitTime = createTime;
-
-    /** Last rollback time. */
-    private volatile long rollbackTime = createTime;
-
     /** Number of reads. */
     private volatile int reads;
 
@@ -97,11 +82,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
      * @param m Metrics to copy from.
      */
     public GridCacheMetricsAdapter(GridCacheMetricsAdapter m) {
-        createTime = m.createTime;
-        readTime = m.readTime;
-        writeTime = m.writeTime;
-        commitTime = m.commitTime;
-        rollbackTime = m.rollbackTime;
         reads = m.reads;
         writes = m.writes;
         hits = m.hits;
@@ -123,73 +103,37 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
     }
 
     /** {@inheritDoc} */
-    @Override public long createTime() {
-        return createTime;
+    @Override public float getAverageTxCommitTime() {
+        return 1.f;
     }
 
     /** {@inheritDoc} */
-    @Override public long writeTime() {
-        return writeTime;
+    @Override public float getAverageTxRollbackTime() {
+        return 1.f;
     }
 
     /** {@inheritDoc} */
-    @Override public long readTime() {
-        return readTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long commitTime() {
-        return commitTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public long rollbackTime() {
-        return rollbackTime;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int reads() {
-        return reads;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int writes() {
-        return (int)(writes + rmCnt);
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hits() {
-        return hits;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int misses() {
-        return misses;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int txCommits() {
+    @Override public int getCacheTxCommits() {
         return txCommits;
     }
 
     /** {@inheritDoc} */
-    @Override public int txRollbacks() {
+    @Override public int getCacheTxRollbacks() {
         return txRollbacks;
     }
 
     /** {@inheritDoc} */
     @Override public void clear() {
-        createTime = U.currentTimeMillis();
-        readTime = createTime;
-        writeTime = createTime;
-        commitTime = createTime;
-        rollbackTime = createTime;
         reads = 0;
         writes = 0;
         hits = 0;
         misses = 0;
         txCommits = 0;
         txRollbacks = 0;
+
+        putTimeNanos = 0;
+        removeTimeNanos = 0;
+        getTimeNanos = 0;
     }
 
     /** {@inheritDoc} */
@@ -342,8 +286,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
      * @param isHit Hit or miss flag.
      */
     public void onRead(boolean isHit) {
-        readTime = U.currentTimeMillis();
-
         reads++;
 
         if (isHit)
@@ -359,8 +301,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
      * Cache write callback.
      */
     public void onWrite() {
-        writeTime = U.currentTimeMillis();
-
         writes++;
 
         if (delegate != null)
@@ -371,8 +311,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
      * Cache remove callback.
      */
     public void onRemove(){
-        writeTime = U.currentTimeMillis();
-
         rmCnt++;
 
         if (delegate != null)
@@ -393,8 +331,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
      * Transaction commit callback.
      */
     public void onTxCommit() {
-        commitTime = U.currentTimeMillis();
-
         txCommits++;
 
         if (delegate != null)
@@ -405,8 +341,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
      * Transaction rollback callback.
      */
     public void onTxRollback() {
-        rollbackTime = U.currentTimeMillis();
-
         txRollbacks++;
 
         if (delegate != null)
@@ -455,12 +389,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
 
     /** {@inheritDoc} */
     @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeLong(createTime);
-        out.writeLong(readTime);
-        out.writeLong(writeTime);
-        out.writeLong(commitTime);
-        out.writeLong(rollbackTime);
-
         out.writeInt(reads);
         out.writeInt(writes);
         out.writeInt(hits);
@@ -477,12 +405,6 @@ public class GridCacheMetricsAdapter implements 
GridCacheMetrics, Externalizable
 
     /** {@inheritDoc} */
     @Override public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException {
-        createTime = in.readLong();
-        readTime = in.readLong();
-        writeTime = in.readLong();
-        commitTime = in.readLong();
-        rollbackTime = in.readLong();
-
         reads = in.readInt();
         writes = in.readInt();
         hits = in.readInt();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheProxyImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheProxyImpl.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheProxyImpl.java
index ac13deb..0441549 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheProxyImpl.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/cache/GridCacheProxyImpl.java
@@ -195,7 +195,7 @@ public class GridCacheProxyImpl<K, V> implements 
GridCacheProxy<K, V>, Externali
     }
 
     /** {@inheritDoc} */
-    @Override public GridCacheMetrics metrics() {
+    @Override public CacheMetricsMxBean metrics() {
         GridCacheProjectionImpl<K, V> prev = gate.enter(prj);
 
         try {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandler.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandler.java
index e8a2a98..b179ea8 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandler.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheCommandHandler.java
@@ -1137,13 +1137,16 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
 
         /** {@inheritDoc} */
         @Override public IgniteFuture<?> applyx(GridCacheProjection<Object, 
Object> c, GridKernalContext ctx) {
-            GridCacheMetrics metrics = c.cache().metrics();
+            CacheMetricsMxBean metrics = c.cache().metrics();
 
             assert metrics != null;
 
             return new GridFinishedFuture<Object>(ctx, new 
GridCacheRestMetrics(
-                metrics.createTime(), metrics.readTime(), metrics.writeTime(),
-                metrics.reads(), metrics.writes(), metrics.hits(), 
metrics.misses()));
+                (int)metrics.getCacheGets(),
+                (int)(metrics.getCacheRemovals() + metrics.getCachePuts()),
+                (int)metrics.getCacheHits(),
+                (int)metrics.getCacheMisses())
+            );
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheRestMetrics.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheRestMetrics.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheRestMetrics.java
index b57cfb4..3c72217 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheRestMetrics.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/processors/rest/handlers/cache/GridCacheRestMetrics.java
@@ -25,15 +25,6 @@ import java.util.*;
  * Grid cache metrics for rest.
  */
 public class GridCacheRestMetrics {
-    /** Create time. */
-    private long createTime;
-
-    /** Last read time. */
-    private long readTime;
-
-    /** Last update time. */
-    private long writeTime;
-
     /** Number of reads. */
     private int reads;
 
@@ -49,19 +40,12 @@ public class GridCacheRestMetrics {
     /**
      * Constructor.
      *
-     * @param createTime Create time.
-     * @param readTime Read time.
-     * @param writeTime Write time.
      * @param reads Reads.
      * @param writes Writes.
      * @param hits Hits.
      * @param misses Misses.
      */
-    public GridCacheRestMetrics(long createTime, long readTime, long 
writeTime, int reads, int writes, int hits,
-        int misses) {
-        this.createTime = createTime;
-        this.readTime = readTime;
-        this.writeTime = writeTime;
+    public GridCacheRestMetrics(int reads, int writes, int hits, int misses) {
         this.reads = reads;
         this.writes = writes;
         this.hits = hits;
@@ -69,60 +53,6 @@ public class GridCacheRestMetrics {
     }
 
     /**
-     * Gets create time.
-     *
-     * @return Create time.
-     */
-    public long getCreateTime() {
-        return createTime;
-    }
-
-    /**
-     * Sets create time.
-     *
-     * @param createTime Create time.
-     */
-    public void setCreateTime(long createTime) {
-        this.createTime = createTime;
-    }
-
-    /**
-     * Gets read time.
-     *
-     * @return Read time.
-     */
-    public long getReadTime() {
-        return readTime;
-    }
-
-    /**
-     * Sets read time.
-     *
-     * @param readTime Read time.
-     */
-    public void setReadTime(long readTime) {
-        this.readTime = readTime;
-    }
-
-    /**
-     * Gets write time.
-     *
-     * @return Write time.
-     */
-    public long getWriteTime() {
-        return writeTime;
-    }
-
-    /**
-     * Sets write time.
-     *
-     * @param writeTime Write time.
-     */
-    public void setWriteTime(long writeTime) {
-        this.writeTime = writeTime;
-    }
-
-    /**
      * Gets reads.
      *
      * @return Reads.
@@ -200,11 +130,8 @@ public class GridCacheRestMetrics {
      * @return Map.
      */
     public Map<String, Long> map() {
-        Map<String, Long> map = new GridLeanMap<>(7);
+        Map<String, Long> map = new GridLeanMap<>(4);
 
-        map.put("createTime", createTime);
-        map.put("readTime", readTime);
-        map.put("writeTime", writeTime);
         map.put("reads", (long)reads);
         map.put("writes", (long)writes);
         map.put("hits", (long)hits);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/main/java/org/gridgain/grid/kernal/visor/cache/VisorCacheMetrics.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/cache/VisorCacheMetrics.java
 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/cache/VisorCacheMetrics.java
index 8263543..1d82d47 100644
--- 
a/modules/core/src/main/java/org/gridgain/grid/kernal/visor/cache/VisorCacheMetrics.java
+++ 
b/modules/core/src/main/java/org/gridgain/grid/kernal/visor/cache/VisorCacheMetrics.java
@@ -23,7 +23,7 @@ import org.gridgain.grid.util.typedef.internal.*;
 import java.io.*;
 
 /**
- * Data transfer object for {@link GridCacheMetrics}.
+ * Data transfer object for {@link org.gridgain.grid.cache.CacheMetricsMxBean}.
  */
 public class VisorCacheMetrics implements Serializable {
     /** */
@@ -100,30 +100,30 @@ public class VisorCacheMetrics implements Serializable {
     public static VisorCacheMetrics from(GridCache c) {
         VisorCacheMetrics cm = new VisorCacheMetrics();
 
-        GridCacheMetrics m = c.metrics();
+        CacheMetricsMxBean m = c.metrics();
 
         cm.size = c.size();
 
-        cm.createTm = m.createTime();
-        cm.writeTm = m.writeTime();
-        cm.readTm = m.readTime();
-        cm.commitTm = m.commitTime();
-        cm.rollbackTm = m.rollbackTime();
-
-        cm.reads = m.reads();
-        cm.writes = m.writes();
-        cm.hits = m.hits();
-        cm.misses = m.misses();
-
-        cm.txCommits = m.txCommits();
-        cm.txRollbacks = m.txRollbacks();
-
-        cm.readsPerSec = perSecond(m.reads(), m.readTime(), m.createTime());
-        cm.writesPerSec = perSecond(m.writes(), m.writeTime(), m.createTime());
-        cm.hitsPerSec = perSecond (m.hits(), m.readTime(), m.createTime());
-        cm.missesPerSec = perSecond(m.misses(), m.readTime(), m.createTime());
-        cm.commitsPerSec = perSecond(m.txCommits(), m.commitTime(), 
m.createTime());
-        cm.rollbacksPerSec = perSecond(m.txRollbacks(), m.rollbackTime(), 
m.createTime());
+//        cm.createTm = m.createTime();
+//        cm.writeTm = m.writeTime();
+//        cm.readTm = m.readTime();
+//        cm.commitTm = m.commitTime();
+//        cm.rollbackTm = m.rollbackTime();
+//
+//        cm.reads = m.reads();
+//        cm.writes = m.writes();
+//        cm.hits = m.hits();
+//        cm.misses = m.misses();
+//
+//        cm.txCommits = m.getAverageTxCommitTime();
+//        cm.txRollbacks = m.getAverageTxRollbackTime();
+//
+//        cm.readsPerSec = perSecond(m.reads(), m.readTime(), m.createTime());
+//        cm.writesPerSec = perSecond(m.writes(), m.writeTime(), 
m.createTime());
+//        cm.hitsPerSec = perSecond (m.hits(), m.readTime(), m.createTime());
+//        cm.missesPerSec = perSecond(m.misses(), m.readTime(), 
m.createTime());
+//        cm.commitsPerSec = perSecond(m.getAverageTxCommitTime(), 
m.commitTime(), m.createTime());
+//        cm.rollbacksPerSec = perSecond(m.getAverageTxRollbackTime(), 
m.rollbackTime(), m.createTime());
 
         cm.qryMetrics = VisorCacheQueryMetrics.from(c.queries().metrics());
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java
index c9b2f0e..c347f29 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheAbstractMetricsSelfTest.java
@@ -146,7 +146,7 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
 
         assertTrue(fut.get());
 
-        assert cache.metrics().getAverageRemoveTime() > 0;
+        assert cache.metrics().getAverageRemoveTime() >= 0;
     }
 
     /**
@@ -309,7 +309,7 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         GridCache<Object, Object> cache = grid(0).cache(null);
 
         assertEquals(0.0, cache.metrics().getAveragePutTime(), 0.0);
-        assertEquals(0, cache.metrics().writes());
+        assertEquals(0, cache.metrics().getCachePuts());
 
         jcache.put(1, 1);
 
@@ -317,7 +317,7 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
 
         assert avgPutTime >= 0;
 
-        assertEquals(1, cache.metrics().writes());
+        assertEquals(1, cache.metrics().getCachePuts());
 
         jcache.put(2, 2);
 
@@ -433,7 +433,7 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         GridCache<Object, Object> cache = grid(0).cache(null);
 
         assertEquals(0.0, cache.metrics().getAveragePutTime(), 0.0);
-        assertEquals(0, cache.metrics().writes());
+        assertEquals(0, cache.metrics().getCachePuts());
 
         Map<Integer, Integer> values = new HashMap<>();
 
@@ -446,13 +446,13 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         float averagePutTime = cache.metrics().getAveragePutTime();
 
         assert averagePutTime >= 0;
-        assertEquals(values.size(), cache.metrics().writes());
+        assertEquals(values.size(), cache.metrics().getCachePuts());
     }
 
     /**
      * @throws Exception If failed.
      */
-    public void testWritesReads() throws Exception {
+    public void testPutsReads() throws Exception {
         GridCache<Integer, Integer> cache0 = grid(0).cache(null);
 
         int keyCnt = keyCount();
@@ -462,19 +462,19 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
 
         // Put and get a few keys.
         for (int i = 0; i < keyCnt; i++) {
-            cache0.put(i, i); // +1 read
+            cache0.put(i, i); // +1 put
 
             boolean isPrimary = 
cache0.affinity().isPrimary(grid(0).localNode(), i);
 
             expReads += expectedReadsPerPut(isPrimary);
             expMisses += expectedMissesPerPut(isPrimary);
 
-            info("Writes: " + cache0.metrics().writes());
+            info("Puts: " + cache0.metrics().getCachePuts());
 
             for (int j = 0; j < gridCount(); j++) {
                 GridCache<Integer, Integer> cache = grid(j).cache(null);
 
-                int cacheWrites = cache.metrics().writes();
+                int cacheWrites = (int)cache.metrics().getCachePuts();
 
                 assertEquals("Wrong cache metrics [i=" + i + ", grid=" + j + 
']', i + 1, cacheWrites);
             }
@@ -485,23 +485,23 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         }
 
         // Check metrics for the whole cache.
-        long writes = 0;
-        long reads = 0;
-        long hits = 0;
-        long misses = 0;
+        int puts = 0;
+        int reads = 0;
+        int hits = 0;
+        int misses = 0;
 
         for (int i = 0; i < gridCount(); i++) {
-            GridCacheMetrics m = grid(i).cache(null).metrics();
+            CacheMetricsMxBean m = grid(i).cache(null).metrics();
 
-            writes += m.writes();
-            reads += m.reads();
-            hits += m.hits();
-            misses += m.misses();
+            puts += m.getCachePuts();
+            reads += m.getCacheGets();
+            hits += m.getCacheHits();
+            misses += m.getCacheMisses();
         }
 
         info("Stats [reads=" + reads + ", hits=" + hits + ", misses=" + misses 
+ ']');
 
-        assertEquals(keyCnt * gridCount(), writes);
+        assertEquals(keyCnt * gridCount(), puts);
         assertEquals(expReads, reads);
         assertEquals(keyCnt, hits);
         assertEquals(expMisses, misses);
@@ -519,12 +519,12 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         for (int i = 0; i < keyCnt; i++) {
             cache0.put(i, i); // +1 read
 
-            info("Writes: " + cache0.metrics().writes());
+            info("Puts: " + cache0.metrics().getCachePuts());
 
             for (int j = 0; j < gridCount(); j++) {
                 GridCache<Integer, Integer> cache = grid(j).cache(null);
 
-                int cacheWrites = cache.metrics().writes();
+                long cacheWrites = cache.metrics().getCachePuts();
 
                 assertEquals("Wrong cache metrics [i=" + i + ", grid=" + j + 
']', i + 1, cacheWrites);
             }
@@ -534,7 +534,7 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
 
         // Check metrics for the whole cache.
         for (int i = 0; i < gridCount(); i++) {
-            GridCacheMetrics m = grid(i).cache(null).metrics();
+            CacheMetricsMxBean m = grid(i).cache(null).metrics();
 
             assertEquals(m.getCacheHits() * 100f / m.getCacheGets(), 
m.getCacheHitPercentage(), 0.1f);
             assertEquals(m.getCacheMisses() * 100f / m.getCacheGets(), 
m.getCacheMissPercentage(), 0.1f);
@@ -563,21 +563,21 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
         }
 
         // Check metrics for the whole cache.
-        long writes = 0;
+        long puts = 0;
         long reads = 0;
         long hits = 0;
         long misses = 0;
 
         for (int i = 0; i < gridCount(); i++) {
-            GridCacheMetrics m = grid(i).cache(null).metrics();
+            CacheMetricsMxBean m = grid(i).cache(null).metrics();
 
-            writes += m.writes();
-            reads += m.reads();
-            hits += m.hits();
-            misses += m.misses();
+            puts += m.getCachePuts();
+            reads += m.getCacheGets();
+            hits += m.getCacheHits();
+            misses += m.getCacheMisses();
         }
 
-        assertEquals(0, writes);
+        assertEquals(0, puts);
         assertEquals(expReads, reads);
         assertEquals(0, hits);
         assertEquals(expReads, misses);
@@ -589,8 +589,8 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
     public void testMissesOnEmptyCache() throws Exception {
         GridCache<Integer, Integer> cache = grid(0).cache(null);
 
-        assertEquals("Expected 0 read", 0, cache.metrics().reads());
-        assertEquals("Expected 0 miss", 0, cache.metrics().misses());
+        assertEquals("Expected 0 read", 0, cache.metrics().getCacheGets());
+        assertEquals("Expected 0 miss", 0, cache.metrics().getCacheMisses());
 
         Integer key =  null;
 
@@ -606,17 +606,17 @@ public abstract class GridCacheAbstractMetricsSelfTest 
extends GridCacheAbstract
 
         cache.get(key);
 
-        assertEquals("Expected 1 read", 1, cache.metrics().reads());
-        assertEquals("Expected 1 miss", 1, cache.metrics().misses());
+        assertEquals("Expected 1 read", 1, cache.metrics().getCacheGets());
+        assertEquals("Expected 1 miss", 1, cache.metrics().getCacheMisses());
 
         cache.put(key, key); // +1 read, +1 miss.
 
         cache.get(key);
 
-        assertEquals("Expected 1 write", 1, cache.metrics().writes());
-        assertEquals("Expected 3 reads", 3, cache.metrics().reads());
-        assertEquals("Expected 2 misses", 2, cache.metrics().misses());
-        assertEquals("Expected 1 hit", 1, cache.metrics().hits());
+        assertEquals("Expected 1 write", 1, cache.metrics().getCachePuts());
+        assertEquals("Expected 3 reads", 3, cache.metrics().getCacheGets());
+        assertEquals("Expected 2 misses", 2, cache.metrics().getCacheMisses());
+        assertEquals("Expected 1 hit", 1, cache.metrics().getCacheHits());
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
index 69ec4b4..1e0b38c 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/GridCacheTransactionalAbstractMetricsSelfTest.java
@@ -220,21 +220,21 @@ public abstract class 
GridCacheTransactionalAbstractMetricsSelfTest extends Grid
 
         for (int i = 0; i < gridCount(); i++) {
             IgniteTxMetrics metrics = grid(i).transactions().metrics();
-            GridCacheMetrics cacheMetrics = grid(i).cache(null).metrics();
+            CacheMetricsMxBean cacheMetrics = grid(i).cache(null).metrics();
 
             if (i == 0) {
                 assertEquals(TX_CNT, metrics.txCommits());
 
                 if (put)
-                    assertEquals(TX_CNT, cacheMetrics.txCommits());
+                    assertEquals(TX_CNT, cacheMetrics.getCacheTxCommits());
             }
             else {
                 assertEquals(0, metrics.txCommits());
-                assertEquals(0, cacheMetrics.txCommits());
+                assertEquals(0, cacheMetrics.getCacheTxCommits());
             }
 
             assertEquals(0, metrics.txRollbacks());
-            assertEquals(0, cacheMetrics.txRollbacks());
+            assertEquals(0, cacheMetrics.getCacheTxRollbacks());
         }
     }
 
@@ -260,20 +260,20 @@ public abstract class 
GridCacheTransactionalAbstractMetricsSelfTest extends Grid
 
         for (int i = 0; i < gridCount(); i++) {
             IgniteTxMetrics metrics = grid(i).transactions().metrics();
-            GridCacheMetrics cacheMetrics = grid(i).cache(null).metrics();
+            CacheMetricsMxBean cacheMetrics = grid(i).cache(null).metrics();
 
             assertEquals(0, metrics.txCommits());
-            assertEquals(0, cacheMetrics.txCommits());
+            assertEquals(0, cacheMetrics.getCacheTxCommits());
 
             if (i == 0) {
                 assertEquals(TX_CNT, metrics.txRollbacks());
 
                 if (put)
-                    assertEquals(TX_CNT, cacheMetrics.txRollbacks());
+                    assertEquals(TX_CNT, cacheMetrics.getCacheTxRollbacks());
             }
             else {
                 assertEquals(0, metrics.txRollbacks());
-                assertEquals(0, cacheMetrics.txRollbacks());
+                assertEquals(0, cacheMetrics.getCacheTxRollbacks());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledMetricsSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledMetricsSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledMetricsSelfTest.java
index b699ce6..8b76feb 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledMetricsSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/dht/GridCachePartitionedNearDisabledMetricsSelfTest.java
@@ -97,21 +97,21 @@ public class 
GridCachePartitionedNearDisabledMetricsSelfTest extends GridCacheAb
         assertNull("Value is not null for key: " + 0, cache.get(0));
 
         // Check metrics for the whole cache.
-        long writes = 0;
+        long removes = 0;
         long reads = 0;
         long hits = 0;
         long misses = 0;
 
         for (int i = 0; i < gridCount(); i++) {
-            GridCacheMetrics m = grid(i).cache(null).metrics();
+            CacheMetricsMxBean m = grid(i).cache(null).metrics();
 
-            writes += m.writes();
-            reads += m.reads();
-            hits += m.hits();
-            misses += m.misses();
+            removes += m.getCacheRemovals();
+            reads += m.getCacheGets();
+            hits += m.getCacheHits();
+            misses += m.getCacheMisses();
         }
 
-        assertEquals(0, writes);
+        assertEquals(0, removes);
         assertEquals(1, reads);
         assertEquals(0, hits);
         assertEquals(1, misses);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMetricsSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMetricsSelfTest.java
 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMetricsSelfTest.java
index 0e1b41e..28e7eb5 100644
--- 
a/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMetricsSelfTest.java
+++ 
b/modules/core/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCacheNearMetricsSelfTest.java
@@ -113,8 +113,8 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
                 key = i;
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Puts: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 break;
@@ -126,23 +126,23 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
             info("Checking grid: " + g.name());
 
-            info("Writes: " + g.cache(null).metrics().writes());
-            info("Reads: " + g.cache(null).metrics().reads());
+            info("Puts: " + g.cache(null).metrics().getCachePuts());
+            info("Reads: " + g.cache(null).metrics().getCacheGets());
 
             if 
(g.cache(null).affinity().isPrimaryOrBackup(g.cluster().localNode(), key))
-                assertEquals(1, g.cache(null).metrics().writes());
+                assertEquals(1, g.cache(null).metrics().getCachePuts());
             else
-                assertEquals(0, g.cache(null).metrics().writes());
+                assertEquals(0, g.cache(null).metrics().getCachePuts());
 
             if (g.cache(null).affinity().isPrimary(g.cluster().localNode(), 
key)) {
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(1, g.cache(null).metrics().hits());
-                assertEquals(1, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(1, g.cache(null).metrics().getCacheHits());
+                assertEquals(1, g.cache(null).metrics().getCacheHits());
             }
             else {
-                assertEquals(0, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(0, g.cache(null).metrics().misses());
+                assertEquals(0, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(0, g.cache(null).metrics().getCacheMisses());
             }
         }
     }
@@ -166,8 +166,8 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
                 key = i;
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Puts: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 break;
@@ -178,24 +178,24 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
             Ignite g = grid(j);
 
             if 
(g.cache(null).affinity().isPrimaryOrBackup(g.cluster().localNode(), key))
-                assertEquals(1, g.cache(null).metrics().writes());
+                assertEquals(1, g.cache(null).metrics().getCachePuts());
             else
-                assertEquals(0, g.cache(null).metrics().writes());
+                assertEquals(0, g.cache(null).metrics().getCachePuts());
 
             if (g.cache(null).affinity().isPrimary(g.cluster().localNode(), 
key)) {
-                assertEquals(1, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(1, g.cache(null).metrics().misses());
+                assertEquals(1, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(1, g.cache(null).metrics().getCacheMisses());
             }
             else if 
(g.cache(null).affinity().isBackup(g.cluster().localNode(), key)){
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(1, g.cache(null).metrics().hits());
-                assertEquals(1, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(1, g.cache(null).metrics().getCacheHits());
+                assertEquals(1, g.cache(null).metrics().getCacheMisses());
             }
             else {
-                assertEquals(0, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(0, g.cache(null).metrics().misses());
+                assertEquals(0, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(0, g.cache(null).metrics().getCacheMisses());
             }
         }
     }
@@ -219,8 +219,8 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
                 key = i;
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Writes: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 break;
@@ -230,22 +230,22 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
         for (int j = 0; j < gridCount(); j++) {
             Ignite g = grid(j);
 
-            assertEquals(1, g.cache(null).metrics().writes());
+            assertEquals(1, g.cache(null).metrics().getCachePuts());
 
             if (g.cache(null).affinity().isPrimary(g.cluster().localNode(), 
key)) {
-                assertEquals(1, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(1, g.cache(null).metrics().misses());
+                assertEquals(1, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(1, g.cache(null).metrics().getCacheMisses());
             }
             else if 
(g.cache(null).affinity().isBackup(g.cluster().localNode(), key)){
-                assertEquals(0, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(0, g.cache(null).metrics().misses());
+                assertEquals(0, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(0, g.cache(null).metrics().getCacheMisses());
             }
             else {
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(1, g.cache(null).metrics().hits());
-                assertEquals(1, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(1, g.cache(null).metrics().getCacheHits());
+                assertEquals(1, g.cache(null).metrics().getCacheMisses());
             }
         }
     }
@@ -267,14 +267,14 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
                 key = i;
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Writes: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 cache0.get(i); // +1 read.
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Writes: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 break;
@@ -286,20 +286,20 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
             info("Checking grid: " + g.name());
 
-            info("Writes: " + g.cache(null).metrics().writes());
-            info("Reads: " + g.cache(null).metrics().reads());
+            info("Writes: " + g.cache(null).metrics().getCachePuts());
+            info("Reads: " + g.cache(null).metrics().getCacheGets());
 
-            assertEquals(0, g.cache(null).metrics().writes());
+            assertEquals(0, g.cache(null).metrics().getCachePuts());
 
             if (g.cache(null).affinity().isPrimary(g.cluster().localNode(), 
key)) {
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(2, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(2, g.cache(null).metrics().getCacheMisses());
             }
             else {
-                assertEquals(0, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(0, g.cache(null).metrics().misses());
+                assertEquals(0, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(0, g.cache(null).metrics().getCacheMisses());
             }
         }
     }
@@ -321,14 +321,14 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
                 key = i;
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Writes: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 cache0.get(i); // +1 read.
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
+                info("Writes: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 break;
@@ -338,17 +338,17 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
         for (int j = 0; j < gridCount(); j++) {
             Ignite g = grid(j);
 
-            assertEquals(0, g.cache(null).metrics().writes());
+            assertEquals(0, g.cache(null).metrics().getCachePuts());
 
             if 
(g.cache(null).affinity().isPrimaryOrBackup(g.cluster().localNode(), key)) {
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(2, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(2, g.cache(null).metrics().getCacheMisses());
             }
             else {
-                assertEquals(0, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(0, g.cache(null).metrics().misses());
+                assertEquals(0, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(0, g.cache(null).metrics().getCacheMisses());
             }
         }
     }
@@ -371,10 +371,10 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
 
                 key = i;
 
-                info("Writes: " + cache0.metrics().writes());
-                info("Reads: " + cache0.metrics().reads());
-                info("Hits: " + cache0.metrics().hits());
-                info("Misses: " + cache0.metrics().misses());
+                info("Writes: " + cache0.metrics().getCachePuts());
+                info("Reads: " + cache0.metrics().getCacheGets());
+                info("Hits: " + cache0.metrics().getCacheHits());
+                info("Misses: " + cache0.metrics().getCacheMisses());
                 info("Affinity nodes: " + 
U.nodes2names(cache0.affinity().mapKeyToPrimaryAndBackups(i)));
 
                 break;
@@ -384,22 +384,22 @@ public class GridCacheNearMetricsSelfTest extends 
GridCacheAbstractSelfTest {
         for (int j = 0; j < gridCount(); j++) {
             Ignite g = grid(j);
 
-            assertEquals(0, g.cache(null).metrics().writes());
+            assertEquals(0, g.cache(null).metrics().getCachePuts());
 
             if (g.cache(null).affinity().isPrimary(g.cluster().localNode(), 
key)) {
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(2, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(2, g.cache(null).metrics().getCacheMisses());
             }
             else if 
(g.cache(null).affinity().isBackup(g.cluster().localNode(), key)){
-                assertEquals(0, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(0, g.cache(null).metrics().misses());
+                assertEquals(0, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(0, g.cache(null).metrics().getCacheMisses());
             }
             else {
-                assertEquals(2, g.cache(null).metrics().reads());
-                assertEquals(0, g.cache(null).metrics().hits());
-                assertEquals(2, g.cache(null).metrics().misses());
+                assertEquals(2, g.cache(null).metrics().getCacheGets());
+                assertEquals(0, g.cache(null).metrics().getCacheHits());
+                assertEquals(2, g.cache(null).metrics().getCacheMisses());
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ea7f5252/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
 
b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
index 9eefa86..9c16f53 100644
--- 
a/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/gridgain/grid/kernal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java
@@ -121,10 +121,10 @@ public class GridCachePartitionedHitsAndMissesSelfTest 
extends GridCommonAbstrac
             long misses = 0;
 
             for (int i = 0; i < GRID_CNT; i++) {
-                GridCacheMetrics m = grid(i).cache(null).metrics();
+                CacheMetricsMxBean m = grid(i).cache(null).metrics();
 
-                hits += m.hits();
-                misses += m.misses();
+                hits += m.getCacheHits();
+                misses += m.getCacheMisses();
             }
 
             assertEquals(CNT / 2, hits);

Reply via email to