Extract ChronicleMapStoreMetrics to its own class file Change-Id: Ie687d29c46a1000914a193aa2e6d55cf5438cce3
diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStore.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStore.java index 4df1729..0419ca4 100644 --- a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStore.java +++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStore.java
@@ -15,8 +15,6 @@ package com.googlesource.gerrit.modules.cache.chroniclemap; import com.google.common.flogger.FluentLogger; -import com.google.gerrit.metrics.Counter0; -import com.google.gerrit.metrics.Description; import com.google.gerrit.metrics.MetricMaker; import java.io.File; import java.io.IOException; @@ -328,61 +326,4 @@ public boolean isOpen() { return store.isOpen(); } - - private static class ChronicleMapStoreMetrics { - private final String sanitizedName; - private final MetricMaker metricMaker; - private final String name; - private final Counter0 storePutFailures; - - ChronicleMapStoreMetrics(String name, MetricMaker metricMaker) { - this.name = name; - this.sanitizedName = metricMaker.sanitizeMetricName(name); - this.metricMaker = metricMaker; - - this.storePutFailures = - metricMaker.newCounter( - "cache/chroniclemap/store_put_failures_" + sanitizedName, - new Description( - "The number of errors caught when inserting entries in chronicle-map store: " - + name) - .setCumulative() - .setUnit("errors")); - } - - void incrementPutFailures() { - storePutFailures.increment(); - } - - <K, V> void registerCallBackMetrics(ChronicleMapStore<K, V> store) { - String PERCENTAGE_FREE_SPACE_METRIC = - "cache/chroniclemap/percentage_free_space_" + sanitizedName; - String REMAINING_AUTORESIZES_METRIC = - "cache/chroniclemap/remaining_autoresizes_" + sanitizedName; - String MAX_AUTORESIZES_METRIC = "cache/chroniclemap/max_autoresizes_" + sanitizedName; - - metricMaker.newCallbackMetric( - PERCENTAGE_FREE_SPACE_METRIC, - Long.class, - new Description( - String.format("The amount of free space in the %s cache as a percentage", name)), - () -> (long) store.percentageFreeSpace()); - - metricMaker.newCallbackMetric( - REMAINING_AUTORESIZES_METRIC, - Integer.class, - new Description( - String.format( - "The number of times the %s cache can automatically expand its capacity", name)), - store::remainingAutoResizes); - - metricMaker.newConstantMetric( - MAX_AUTORESIZES_METRIC, - store.maxAutoResizes(), - new Description( - String.format( - "The maximum number of times the %s cache can automatically expand its capacity", - name))); - } - } }
diff --git a/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStoreMetrics.java b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStoreMetrics.java new file mode 100644 index 0000000..cf758b5 --- /dev/null +++ b/src/main/java/com/googlesource/gerrit/modules/cache/chroniclemap/ChronicleMapStoreMetrics.java
@@ -0,0 +1,76 @@ +// Copyright (C) 2022 The Android Open Source Project +// +// Licensed 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 com.googlesource.gerrit.modules.cache.chroniclemap; + +import com.google.gerrit.metrics.Counter0; +import com.google.gerrit.metrics.Description; +import com.google.gerrit.metrics.MetricMaker; + +class ChronicleMapStoreMetrics { + private final String sanitizedName; + private final MetricMaker metricMaker; + private final String name; + private final Counter0 storePutFailures; + + ChronicleMapStoreMetrics(String name, MetricMaker metricMaker) { + this.name = name; + this.sanitizedName = metricMaker.sanitizeMetricName(name); + this.metricMaker = metricMaker; + + this.storePutFailures = + metricMaker.newCounter( + "cache/chroniclemap/store_put_failures_" + sanitizedName, + new Description( + "The number of errors caught when inserting entries in chronicle-map store: " + + name) + .setCumulative() + .setUnit("errors")); + } + + void incrementPutFailures() { + storePutFailures.increment(); + } + + <K, V> void registerCallBackMetrics(ChronicleMapStore<K, V> store) { + String PERCENTAGE_FREE_SPACE_METRIC = + "cache/chroniclemap/percentage_free_space_" + sanitizedName; + String REMAINING_AUTORESIZES_METRIC = + "cache/chroniclemap/remaining_autoresizes_" + sanitizedName; + String MAX_AUTORESIZES_METRIC = "cache/chroniclemap/max_autoresizes_" + sanitizedName; + + metricMaker.newCallbackMetric( + PERCENTAGE_FREE_SPACE_METRIC, + Long.class, + new Description( + String.format("The amount of free space in the %s cache as a percentage", name)), + () -> (long) store.percentageFreeSpace()); + + metricMaker.newCallbackMetric( + REMAINING_AUTORESIZES_METRIC, + Integer.class, + new Description( + String.format( + "The number of times the %s cache can automatically expand its capacity", name)), + store::remainingAutoResizes); + + metricMaker.newConstantMetric( + MAX_AUTORESIZES_METRIC, + store.maxAutoResizes(), + new Description( + String.format( + "The maximum number of times the %s cache can automatically expand its capacity", + name))); + } +}