Revert "Add numberofprojects metric"
This reverts commit 42cd8b2b315adfb200eebfa95c89fed01282f4f1.
Reason for revert: See Issue 325029893, this metrics should go into Gerrit core
Change-Id: I2150717ff91297e7e517d3ec648b16f7cb72c800
diff --git a/BUILD b/BUILD
index 2c38d9e..7370013 100644
--- a/BUILD
+++ b/BUILD
@@ -15,7 +15,6 @@
manifest_entries = [
"Gerrit-PluginName: git-repo-metrics",
"Gerrit-Module: com.googlesource.gerrit.plugins.gitrepometrics.Module",
- "Gerrit-ReloadMode: restart",
"Implementation-Title: git-repo-metrics plugin",
"Implementation-URL: https://review.gerrithub.io/admin/repos/GerritForge/git-repo-metrics",
"Implementation-Vendor: GerritForge",
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/Module.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/Module.java
index 899a33b..c501bb6 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/Module.java
@@ -52,6 +52,5 @@
DynamicSet.bind(binder(), MetricsCollector.class).to(FSMetricsCollector.class);
DynamicSet.bind(binder(), MetricsCollector.class).to(GitRefsMetricsCollector.class);
install(new UpdateGitMetricsTaskModule());
- listener().to(RepoCountMetricRegister.class);
}
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/RepoCountMetricRegister.java b/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/RepoCountMetricRegister.java
deleted file mode 100644
index 221dda7..0000000
--- a/src/main/java/com/googlesource/gerrit/plugins/gitrepometrics/RepoCountMetricRegister.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (C) 2024 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.plugins.gitrepometrics;
-
-import javax.inject.Inject;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Supplier;
-import com.google.common.flogger.FluentLogger;
-import com.google.gerrit.extensions.events.LifecycleListener;
-import com.google.gerrit.metrics.Description;
-import com.google.gerrit.metrics.MetricMaker;
-import com.google.gerrit.server.project.ProjectCache;
-import com.google.inject.Singleton;
-
-@Singleton
-public class RepoCountMetricRegister implements LifecycleListener {
- private static final FluentLogger logger = FluentLogger.forEnclosingClass();
- protected static final String REPO_COUNT_METRIC_NAME = "numberofprojects";
- private final MetricMaker metricMaker;
- private final ProjectCache projectCache;
-
- @VisibleForTesting
- @Inject
- RepoCountMetricRegister(ProjectCache projectCache, MetricMaker metricMaker) {
- this.metricMaker = metricMaker;
- this.projectCache = projectCache;
- }
-
- @Override
- public void start() {
- logger.atInfo().log("Registering metric " + REPO_COUNT_METRIC_NAME);
-
- metricMaker.newCallbackMetric(
- REPO_COUNT_METRIC_NAME,
- Long.class,
- new Description("Number of existing projects.").setGauge().setUnit("Count"),
- new Supplier<Long>() {
- @Override
- public Long get() {
- return (long) projectCache.all().size();
- }
- });
- }
-
- @Override
- public void stop() {}
-}
diff --git a/src/resources/Documentation/config.md b/src/resources/Documentation/config.md
index e2ff501..3db95e3 100644
--- a/src/resources/Documentation/config.md
+++ b/src/resources/Documentation/config.md
@@ -2,14 +2,9 @@
======================
The @PLUGIN@ allows a systematic collection of repository metrics.
+Metrics are updated upon a `ref-update` receive.
-The following exposed metric is available on request with the current status:
-
-```bash
-plugins_git_repo_metrics_numberOfProjects
-```
-
-The following exposed metrics are updated upon a `ref-update` receive:
+Currently, the metrics exposed are the following:
```bash
plugins_git_repo_metrics_numberofbitmaps_<repo_name>
diff --git a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeMetricMaker.java b/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeMetricMaker.java
index 0eb1778..6faaf99 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeMetricMaker.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeMetricMaker.java
@@ -14,13 +14,8 @@
package com.googlesource.gerrit.plugins.gitrepometrics;
-import java.util.HashMap;
-import java.util.Optional;
-
import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry;
-import com.google.common.base.Supplier;
-import com.google.gerrit.extensions.registration.RegistrationHandle;
import com.google.gerrit.metrics.CallbackMetric0;
import com.google.gerrit.metrics.Description;
import com.google.gerrit.metrics.DisabledMetricMaker;
@@ -28,19 +23,16 @@
class FakeMetricMaker extends DisabledMetricMaker {
Integer callsCounter;
private MetricRegistry metricRegistry;
- HashMap<String, Supplier<?>> actionMap;
- @SuppressWarnings({"rawtypes", "unchecked"})
FakeMetricMaker(MetricRegistry metricRegistry) {
- this.callsCounter = 0;
+ callsCounter = 0;
this.metricRegistry = metricRegistry;
- this.actionMap = new HashMap();
}
- @SuppressWarnings("unused")
@Override
public <V> CallbackMetric0<V> newCallbackMetric(
String name, Class<V> valueClass, Description desc) {
+
callsCounter += 1;
metricRegistry.register(
String.format("%s/%s/%s", "plugins", "git-repo-metrics", name), new Meter());
@@ -53,25 +45,4 @@
public void remove() {}
};
}
-
- @Override
- public <V> RegistrationHandle newCallbackMetric(
- String name, Class<V> valueClass, Description desc, Supplier<V> trigger) {
- callsCounter += 1;
-
- String metricName = String.format("%s/%s/%s", "plugins", "git-repo-metrics", name);
-
- metricRegistry.register(metricName, new Meter());
-
- actionMap.put(metricName, trigger);
-
- return null;
- }
-
- @SuppressWarnings("rawtypes")
- public Optional<Supplier> getValueForMetric(String metric) {
- if (actionMap.containsKey(metric)) return Optional.of(actionMap.get(metric));
-
- return Optional.empty();
- }
}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeProjectCache.java b/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeProjectCache.java
deleted file mode 100644
index 96d8db9..0000000
--- a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/FakeProjectCache.java
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright (C) 2024 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.plugins.gitrepometrics;
-
-import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-
-import com.google.common.collect.ImmutableSortedSet;
-import com.google.gerrit.entities.Project;
-import com.google.gerrit.entities.Project.NameKey;
-import com.google.gerrit.server.project.NullProjectCache;
-
-public class FakeProjectCache extends NullProjectCache {
- private Set<Project.NameKey> projects;
-
- @Override
- public ImmutableSortedSet<NameKey> all() {
- return ImmutableSortedSet.copyOf(projects);
- }
-
- public void setProjectCount(int projectCount) {
- projects =
- IntStream.range(0, projectCount)
- .mapToObj(i -> NameKey.parse(String.valueOf(i)))
- .collect(Collectors.toSet());
- }
-
- public FakeProjectCache(int count) {
- setProjectCount(count);
- }
-}
diff --git a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsCacheIT.java b/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsCacheIT.java
index b72fb9c..4eee736 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsCacheIT.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/GitRepoMetricsCacheIT.java
@@ -37,7 +37,7 @@
sysModule = "com.googlesource.gerrit.plugins.gitrepometrics.Module")
public class GitRepoMetricsCacheIT extends LightweightPluginDaemonTest {
- private final int MAX_WAIT_TIME_FOR_METRICS_SECS = 10;
+ private final int MAX_WAIT_TIME_FOR_METRICS_SECS = 5;
@Inject MetricRegistry metricRegistry;
private FSMetricsCollector fsMetricsCollector;
@@ -77,10 +77,8 @@
+ gitRefsMetricsCollector.availableMetrics().size();
try {
- // One additional is added for the numberofprojects metric
WaitUtil.waitUntil(
- () ->
- getPluginMetricsCount() == (long) (availableProjects.size() * expectedMetricsCount) + 1,
+ () -> getPluginMetricsCount() == (long) availableProjects.size() * expectedMetricsCount,
Duration.ofSeconds(MAX_WAIT_TIME_FOR_METRICS_SECS));
} catch (InterruptedException e) {
fail(
diff --git a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/RepoCountMetricTest.java b/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/RepoCountMetricTest.java
deleted file mode 100644
index bd84544..0000000
--- a/src/test/java/com/googlesource/gerrit/plugins/gitrepometrics/RepoCountMetricTest.java
+++ /dev/null
@@ -1,76 +0,0 @@
-// Copyright (C) 2024 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.plugins.gitrepometrics;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Optional;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import com.codahale.metrics.MetricRegistry;
-
-import com.google.common.base.Supplier;
-
-public class RepoCountMetricTest {
- private FakeMetricMaker fakeMetricMaker;
- private MetricRegistry metricRegistry;
- private FakeProjectCache fakeProjectCache;
- private String repoCountMetricName;
-
- @Before
- public void setup() {
- metricRegistry = new MetricRegistry();
- fakeMetricMaker = new FakeMetricMaker(metricRegistry);
- fakeProjectCache = new FakeProjectCache(0);
- repoCountMetricName =
- String.format(
- "%s/%s/%s",
- "plugins", "git-repo-metrics", RepoCountMetricRegister.REPO_COUNT_METRIC_NAME);
- }
-
- @Test
- public void metricIsCorrectlyRegistered() {
- RepoCountMetricRegister repoCountMetricRegister =
- new RepoCountMetricRegister(fakeProjectCache, fakeMetricMaker);
-
- repoCountMetricRegister.start();
-
- assertTrue(metricRegistry.getMetrics().containsKey(repoCountMetricName));
-
- metricRegistry.remove(repoCountMetricName);
- }
-
- @Test
- public void metricIsUpdated() {
- RepoCountMetricRegister repoCountMetricRegister =
- new RepoCountMetricRegister(fakeProjectCache, fakeMetricMaker);
-
- repoCountMetricRegister.start();
-
- assertEquals(1, fakeMetricMaker.actionMap.size());
-
- @SuppressWarnings("rawtypes")
- Optional<Supplier> obj = fakeMetricMaker.getValueForMetric(repoCountMetricName);
-
- assertTrue(!obj.isEmpty());
- assertEquals(0, ((Long) obj.get().get()).longValue());
-
- fakeProjectCache.setProjectCount(2);
-
- assertEquals(2, ((Long) obj.get().get()).longValue());
- }
-}