summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java97
1 files changed, 0 insertions, 97 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java b/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java
deleted file mode 100644
index 3b19a622b4..0000000000
--- a/gerrit-server/src/main/java/com/google/gerrit/metrics/dropwizard/BucketedTimer.java
+++ /dev/null
@@ -1,97 +0,0 @@
-// Copyright (C) 2015 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.google.gerrit.metrics.dropwizard;
-
-import com.codahale.metrics.Metric;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Maps;
-import com.google.gerrit.metrics.Description;
-import com.google.gerrit.metrics.Field;
-import com.google.gerrit.metrics.dropwizard.DropWizardMetricMaker.TimerImpl;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
-/** Abstract timer broken down into buckets by {@link Field} values. */
-abstract class BucketedTimer implements BucketedMetric {
- private final DropWizardMetricMaker metrics;
- private final String name;
- private final Description.FieldOrdering ordering;
- protected final Field<?>[] fields;
- protected final TimerImpl total;
- private final Map<Object, TimerImpl> cells;
- private final Object lock = new Object();
-
- BucketedTimer(DropWizardMetricMaker metrics, String name, Description desc, Field<?>... fields) {
- this.metrics = metrics;
- this.name = name;
- this.ordering = desc.getFieldOrdering();
- this.fields = fields;
- this.total = metrics.newTimerImpl(name + "_total");
- this.cells = new ConcurrentHashMap<>();
- }
-
- void doRemove() {
- for (TimerImpl c : cells.values()) {
- c.remove();
- }
- total.remove();
- metrics.remove(name);
- }
-
- TimerImpl forceCreate(Object f1, Object f2) {
- return forceCreate(ImmutableList.of(f1, f2));
- }
-
- TimerImpl forceCreate(Object f1, Object f2, Object f3) {
- return forceCreate(ImmutableList.of(f1, f2, f3));
- }
-
- TimerImpl forceCreate(Object key) {
- TimerImpl c = cells.get(key);
- if (c != null) {
- return c;
- }
-
- synchronized (lock) {
- c = cells.get(key);
- if (c == null) {
- c = metrics.newTimerImpl(submetric(key));
- cells.put(key, c);
- }
- return c;
- }
- }
-
- private String submetric(Object key) {
- return DropWizardMetricMaker.name(ordering, name, name(key));
- }
-
- abstract String name(Object key);
-
- @Override
- public Metric getTotal() {
- return total.metric;
- }
-
- @Override
- public Field<?>[] getFields() {
- return fields;
- }
-
- @Override
- public Map<Object, Metric> getCells() {
- return Maps.transformValues(cells, t -> t.metric);
- }
-}