diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/CacheKeysIndex.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/CacheKeysIndex.java
index 430a95e..9e56321 100644
--- a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/CacheKeysIndex.java
+++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/CacheKeysIndex.java
@@ -19,6 +19,7 @@
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.flogger.FluentLogger;
 import com.google.errorprone.annotations.CompatibleWith;
+import com.google.gerrit.metrics.Counter0;
 import com.google.gerrit.metrics.Description;
 import com.google.gerrit.metrics.Description.Units;
 import com.google.gerrit.metrics.MetricMaker;
@@ -84,6 +85,10 @@
     private final Timer0 addLatency;
     private final Timer0 removeAndConsumeOlderThanLatency;
     private final Timer0 removeAndConsumeLruKeyLatency;
+    private final Timer0 restoreLatency;
+    private final Timer0 persistLatency;
+    private final Counter0 restoreFailures;
+    private final Counter0 persistFailures;
 
     private Metrics(MetricMaker metricMaker, String name) {
       String sanitizedName = metricMaker.sanitizeMetricName(name);
@@ -127,6 +132,42 @@
                           name))
                   .setCumulative()
                   .setUnit(Units.NANOSECONDS));
+
+      restoreLatency =
+          metricMaker.newTimer(
+              "cache/chroniclemap/keys_index_restore_latency_" + sanitizedName,
+              new Description(
+                      String.format("The latency of restoring %s cache's index from file", name))
+                  .setCumulative()
+                  .setUnit(Units.MICROSECONDS));
+
+      persistLatency =
+          metricMaker.newTimer(
+              "cache/chroniclemap/keys_index_persist_latency_" + sanitizedName,
+              new Description(
+                      String.format("The latency of perststing %s cache's index to file", name))
+                  .setCumulative()
+                  .setUnit(Units.MICROSECONDS));
+
+      restoreFailures =
+          metricMaker.newCounter(
+              "cache/chroniclemap/keys_index_restore_failures_" + sanitizedName,
+              new Description(
+                      String.format(
+                          "The number of errors caught when restore %s cache index from file operation was performed: ",
+                          name))
+                  .setCumulative()
+                  .setUnit("errors"));
+
+      persistFailures =
+          metricMaker.newCounter(
+              "cache/chroniclemap/keys_index_persist_failures_" + sanitizedName,
+              new Description(
+                      String.format(
+                          "The number of errors caught when persist %s cache index to file operation was performed: ",
+                          name))
+                  .setCumulative()
+                  .setUnit("errors"));
     }
   }
 
@@ -211,27 +252,31 @@
 
   void persist() {
     logger.atInfo().log("Persisting cache keys index %s to %s file", name, indexFile);
-    ArrayList<TimedKey> toPersist;
-    synchronized (keys) {
-      toPersist = new ArrayList<>(keys);
-    }
-    CacheSerializer<T> serializer = CacheSerializers.getKeySerializer(name);
-    try (DataOutputStream dos =
-        new DataOutputStream(new BufferedOutputStream(new FileOutputStream(tempIndexFile)))) {
-      for (TimedKey key : toPersist) {
-        writeKey(serializer, dos, key);
+    try (Timer0.Context timer = metrics.persistLatency.start()) {
+      ArrayList<TimedKey> toPersist;
+      synchronized (keys) {
+        toPersist = new ArrayList<>(keys);
       }
-      dos.flush();
-      indexFile.delete();
-      if (!tempIndexFile.renameTo(indexFile)) {
-        logger.atSevere().log(
-            "Renaming temporary index file %s to %s was not successful. Persisting cache key index failed.",
-            tempIndexFile, indexFile);
-        return;
+      CacheSerializer<T> serializer = CacheSerializers.getKeySerializer(name);
+      try (DataOutputStream dos =
+          new DataOutputStream(new BufferedOutputStream(new FileOutputStream(tempIndexFile)))) {
+        for (TimedKey key : toPersist) {
+          writeKey(serializer, dos, key);
+        }
+        dos.flush();
+        indexFile.delete();
+        if (!tempIndexFile.renameTo(indexFile)) {
+          logger.atWarning().log(
+              "Renaming temporary index file %s to %s was not successful",
+              tempIndexFile, indexFile);
+          metrics.persistFailures.increment();
+          return;
+        }
+        logger.atInfo().log("Cache keys index %s was persisted to %s file", name, indexFile);
+      } catch (Exception e) {
+        logger.atSevere().withCause(e).log("Persisting cache keys index %s failed", name);
+        metrics.persistFailures.increment();
       }
-      logger.atInfo().log("Cache keys index %s was persisted to %s file", name, indexFile);
-    } catch (Exception e) {
-      logger.atSevere().withCause(e).log("Persisting cache keys index %s failed", name);
     }
   }
 
@@ -242,6 +287,7 @@
             "Gerrit was not closed properly as index persist operation was not finished: temporary"
                 + " index storage file %s exists for %s cache.",
             tempIndexFile, name);
+        metrics.restoreFailures.increment();
         if (!tempIndexFile.delete()) {
           logger.atSevere().log(
               "Cannot delete the temporary index storage file %s.", tempIndexFile);
@@ -256,21 +302,25 @@
                   + " Existing persisted entries will be pruned only when they are accessed after"
                   + " Gerrit start.",
               name, indexFile.getPath());
+          metrics.restoreFailures.increment();
         }
         return;
       }
 
       logger.atInfo().log("Restoring cache keys index %s from %s file", name, indexFile);
-      CacheSerializer<T> serializer = CacheSerializers.getKeySerializer(name);
-      try (DataInputStream dis =
-          new DataInputStream(new BufferedInputStream(new FileInputStream(indexFile)))) {
-        while (dis.available() > 0) {
-          keys.add(readKey(serializer, dis));
+      try (Timer0.Context timer = metrics.restoreLatency.start()) {
+        CacheSerializer<T> serializer = CacheSerializers.getKeySerializer(name);
+        try (DataInputStream dis =
+            new DataInputStream(new BufferedInputStream(new FileInputStream(indexFile)))) {
+          while (dis.available() > 0) {
+            keys.add(readKey(serializer, dis));
+          }
+          logger.atInfo().log("Cache keys index %s was restored from %s file", name, indexFile);
         }
-        logger.atInfo().log("Cache keys index %s was restored from %s file", name, indexFile);
       }
     } catch (Exception e) {
       logger.atSevere().withCause(e).log("Restoring cache keys index %s failed", name);
+      metrics.restoreFailures.increment();
     }
   }
 
diff --git a/src/main/resources/Documentation/metrics.md b/src/main/resources/Documentation/metrics.md
index b0bc902..03b8918 100644
--- a/src/main/resources/Documentation/metrics.md
+++ b/src/main/resources/Documentation/metrics.md
@@ -32,5 +32,17 @@
 * cache/chroniclemap/keys_index_remove_lru_key_latency_<cache-name>
   : The latency of removing and consuming LRU key from an index.
 
-* "cache/chroniclemap/store_put_failures_<cache-name>
-  : The number of errors caught when inserting entries in chronicle-map store
\ No newline at end of file
+* cache/chroniclemap/keys_index_restore_latency_<cache-name>
+  : The latency of restoring an index from a file (performed once during the plugin start).
+
+* cache/chroniclemap/keys_index_persist_latency_<cache-name>
+  : The latency of persisting an index to a file.
+
+* cache/chroniclemap/store_put_failures_<cache-name>
+  : The number of errors caught when inserting entries in chronicle-map store
+
+* cache/chroniclemap/keys_index_restore_failures_<cache-name>
+  : The number of errors caught when restore cache index from file operation was performed
+
+* cache/chroniclemap/keys_index_persist_failures_<cache-name>
+  : The number of errors caught when persist cache index to file operation was performed
\ No newline at end of file
diff --git a/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java b/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java
index 9c839f0..d90eaff 100644
--- a/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java
+++ b/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapCacheTest.java
@@ -534,6 +534,12 @@
         "cache/chroniclemap/keys_index_remove_and_consume_older_than_latency_" + sanitized;
     String keysIndexRemoveLruLatencyMetricName =
         "cache/chroniclemap/keys_index_remove_lru_key_latency_" + sanitized;
+    String keysIndexRestoreName = "cache/chroniclemap/keys_index_restore_latency_" + sanitized;
+    String keysIndexPersistName = "cache/chroniclemap/keys_index_persist_latency_" + sanitized;
+    String keysIndexRestoreFailuresName =
+        "cache/chroniclemap/keys_index_restore_failures_" + sanitized;
+    String keysIndexPersistFailuresName =
+        "cache/chroniclemap/keys_index_persist_failures_" + sanitized;
 
     newCacheWithMetrics(cacheName, null);
 
@@ -544,6 +550,10 @@
     getTimer(keysIndexAddLatencyMetricName);
     getTimer(keysIndexRemoveOlderThanLatencyMetricName);
     getTimer(keysIndexRemoveLruLatencyMetricName);
+    getTimer(keysIndexRestoreName);
+    getTimer(keysIndexPersistName);
+    getCounter(keysIndexRestoreFailuresName);
+    getCounter(keysIndexPersistFailuresName);
   }
 
   private int valueSize(String value) {
