Skip to content

Commit 549f421

Browse files
authored
Merge pull request #41 from ringcentral/metric-dimension-to-label
#15: rename MetricDimension/MetricDimensionValue to Label/LabelValue
2 parents c3ee4ea + a61a6b9 commit 549f421

File tree

249 files changed

+4654
-4583
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

249 files changed

+4654
-4583
lines changed

README.md

Lines changed: 248 additions & 248 deletions
Large diffs are not rendered by default.

metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/AbstractMeter.java

Lines changed: 219 additions & 222 deletions
Large diffs are not rendered by default.

metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/AbstractMetricRegistry.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
import com.ringcentral.platform.metrics.counter.Counter;
66
import com.ringcentral.platform.metrics.counter.configs.CounterConfig;
77
import com.ringcentral.platform.metrics.counter.configs.builders.CounterConfigBuilder;
8-
import com.ringcentral.platform.metrics.dimensions.MetricDimensionValues;
98
import com.ringcentral.platform.metrics.histogram.Histogram;
109
import com.ringcentral.platform.metrics.histogram.configs.HistogramConfig;
1110
import com.ringcentral.platform.metrics.histogram.configs.builders.HistogramConfigBuilder;
1211
import com.ringcentral.platform.metrics.infoProviders.ConcurrentMaskTreeMetricNamedInfoProvider;
1312
import com.ringcentral.platform.metrics.infoProviders.PredicativeMetricNamedInfoProvider;
13+
import com.ringcentral.platform.metrics.labels.LabelValues;
1414
import com.ringcentral.platform.metrics.names.MetricName;
1515
import com.ringcentral.platform.metrics.predicates.MetricNamedPredicate;
1616
import com.ringcentral.platform.metrics.rate.Rate;
@@ -344,7 +344,7 @@ private <C extends VarConfig> MetricConfigBuilder<C> prepareVarConfigBuilder(
344344
}
345345
}
346346

347-
replacePrefixDimensionValues(key, builder);
347+
replacePrefixLabelValues(key, builder);
348348
return builder;
349349
}
350350

@@ -437,7 +437,7 @@ private <C extends CachingVarConfig> MetricConfigBuilder<C> prepareCachingVarCon
437437
}
438438
}
439439

440-
replacePrefixDimensionValues(key, builder);
440+
replacePrefixLabelValues(key, builder);
441441
return builder;
442442
}
443443

@@ -843,7 +843,7 @@ protected <C extends CounterConfig> Counter buildCounter(
843843
}
844844
}
845845

846-
replacePrefixDimensionValues(key, builder);
846+
replacePrefixLabelValues(key, builder);
847847

848848
return metricMaker.makeCounter(
849849
key.name(),
@@ -921,7 +921,7 @@ protected <C extends RateConfig> Rate buildRate(
921921
}
922922
}
923923

924-
replacePrefixDimensionValues(key, builder);
924+
replacePrefixLabelValues(key, builder);
925925

926926
return metricMaker.makeRate(
927927
key.name(),
@@ -999,7 +999,7 @@ protected <C extends HistogramConfig> Histogram buildHistogram(
999999
}
10001000
}
10011001

1002-
replacePrefixDimensionValues(key, builder);
1002+
replacePrefixLabelValues(key, builder);
10031003

10041004
return metricMaker.makeHistogram(
10051005
key.name(),
@@ -1077,7 +1077,7 @@ protected <C extends TimerConfig> Timer buildTimer(
10771077
}
10781078
}
10791079

1080-
replacePrefixDimensionValues(key, builder);
1080+
replacePrefixLabelValues(key, builder);
10811081

10821082
return metricMaker.makeTimer(
10831083
key.name(),
@@ -1277,10 +1277,10 @@ private void notifyMetricRemoved(MetricRegistryListener listener, MetricKey key,
12771277
}
12781278
}
12791279

1280-
private void replacePrefixDimensionValues(MetricKey key, MetricConfigBuilder<?> builder) {
1281-
if (key instanceof PrefixDimensionValuesMetricKey) {
1282-
MetricDimensionValues dimensionValues = ((PrefixDimensionValuesMetricKey)key).dimensionValues();
1283-
builder.modify(withMetric().prefix(dimensionValues));
1280+
private void replacePrefixLabelValues(MetricKey key, MetricConfigBuilder<?> builder) {
1281+
if (key instanceof PrefixLabelValuesMetricKey) {
1282+
LabelValues labelValues = ((PrefixLabelValuesMetricKey)key).labelValues();
1283+
builder.modify(withMetric().prefix(labelValues));
12841284
}
12851285
}
12861286
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.ringcentral.platform.metrics;
22

3-
import com.ringcentral.platform.metrics.dimensions.MetricDimensionValues;
3+
import com.ringcentral.platform.metrics.labels.LabelValues;
44

55
public interface Meter extends Metric {
6-
void removeInstancesFor(MetricDimensionValues dimensionValues);
6+
void removeInstancesFor(LabelValues labelValues);
77
}

metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/MetricInstance.java

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.ringcentral.platform.metrics;
22

3-
import com.ringcentral.platform.metrics.dimensions.MetricDimension;
4-
import com.ringcentral.platform.metrics.dimensions.MetricDimensionUtils;
5-
import com.ringcentral.platform.metrics.dimensions.MetricDimensionValue;
63
import com.ringcentral.platform.metrics.histogram.Histogram;
4+
import com.ringcentral.platform.metrics.labels.Label;
5+
import com.ringcentral.platform.metrics.labels.LabelUtils;
6+
import com.ringcentral.platform.metrics.labels.LabelValue;
77
import com.ringcentral.platform.metrics.measurables.Measurable;
88
import com.ringcentral.platform.metrics.measurables.MeasurableValues;
99
import com.ringcentral.platform.metrics.names.MetricNamed;
@@ -12,31 +12,33 @@
1212
import java.util.Map;
1313
import java.util.Set;
1414

15+
import static com.ringcentral.platform.metrics.utils.CollectionUtils.isNonEmpty;
16+
1517
public interface MetricInstance extends MetricNamed {
16-
default boolean hasDimensionValues() {
17-
return MetricDimensionUtils.hasDimensionValues(dimensionValues());
18+
default boolean hasLabelValues() {
19+
return isNonEmpty(labelValues());
1820
}
1921

20-
List<MetricDimensionValue> dimensionValues();
22+
List<LabelValue> labelValues();
2123

22-
default boolean hasDimension(MetricDimension dimension) {
23-
return MetricDimensionUtils.hasDimension(dimensionValues(), dimension);
24+
default boolean hasLabel(Label label) {
25+
return LabelUtils.hasLabel(labelValues(), label);
2426
}
2527

26-
default String valueOf(MetricDimension dimension) {
27-
return MetricDimensionUtils.valueOf(dimensionValues(), dimension);
28+
default String valueOf(Label label) {
29+
return LabelUtils.valueOf(labelValues(), label);
2830
}
2931

30-
default Map<MetricDimension, MetricDimensionValue> dimensionToValue() {
31-
return MetricDimensionUtils.dimensionToValue(dimensionValues());
32+
default Map<Label, LabelValue> labelToValue() {
33+
return LabelUtils.labelToValue(labelValues());
3234
}
3335

34-
default List<MetricDimensionValue> dimensionValuesWithout(MetricDimension dimension, MetricDimension... dimensions) {
35-
return MetricDimensionUtils.dimensionValuesWithout(dimensionValues(), dimension, dimensions);
36+
default List<LabelValue> labelValuesWithout(Label label, Label... labels) {
37+
return LabelUtils.labelValuesWithout(labelValues(), label, labels);
3638
}
3739

3840
boolean isTotalInstance();
39-
boolean isDimensionalTotalInstance();
41+
boolean isLabeledMetricTotalInstance();
4042
boolean isLevelInstance();
4143

4244
Set<Measurable> measurables();

metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/PrefixDimensionValuesMetricKey.java

Lines changed: 0 additions & 71 deletions
This file was deleted.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.ringcentral.platform.metrics;
2+
3+
import com.ringcentral.platform.metrics.labels.LabelValues;
4+
import com.ringcentral.platform.metrics.names.MetricName;
5+
6+
import static com.ringcentral.platform.metrics.utils.ObjectUtils.hashCodeFor;
7+
import static com.ringcentral.platform.metrics.utils.Preconditions.checkArgument;
8+
import static java.util.Objects.requireNonNull;
9+
10+
public class PrefixLabelValuesMetricKey implements MetricKey {
11+
12+
private final MetricName name;
13+
private final LabelValues labelValues;
14+
private final int hashCode;
15+
16+
public static PrefixLabelValuesMetricKey withKey(MetricName name, LabelValues labelValues) {
17+
return prefixLabelValuesMetricKey(name, labelValues);
18+
}
19+
20+
public static PrefixLabelValuesMetricKey metricKey(MetricName name, LabelValues labelValues) {
21+
return prefixLabelValuesMetricKey(name, labelValues);
22+
}
23+
24+
public static PrefixLabelValuesMetricKey prefixLabelValuesMetricKey(MetricName name, LabelValues labelValues) {
25+
return new PrefixLabelValuesMetricKey(name, labelValues);
26+
}
27+
28+
public PrefixLabelValuesMetricKey(MetricName name, LabelValues labelValues) {
29+
this.name = requireNonNull(name);
30+
31+
checkArgument(
32+
labelValues != null && !labelValues.isEmpty(),
33+
"labelValues is null or empty");
34+
35+
this.labelValues = labelValues;
36+
this.hashCode = hashCodeFor(name, labelValues);
37+
}
38+
39+
@Override
40+
public MetricName name() {
41+
return name;
42+
}
43+
44+
public LabelValues labelValues() {
45+
return labelValues;
46+
}
47+
48+
@Override
49+
public boolean equals(Object other) {
50+
if (this == other) {
51+
return true;
52+
}
53+
54+
if (other == null || getClass() != other.getClass()) {
55+
return false;
56+
}
57+
58+
PrefixLabelValuesMetricKey that = (PrefixLabelValuesMetricKey)other;
59+
60+
if (hashCode != that.hashCode) {
61+
return false;
62+
}
63+
64+
return name.equals(that.name) && labelValues.equals(that.labelValues);
65+
}
66+
67+
@Override
68+
public int hashCode() {
69+
return hashCode;
70+
}
71+
}

metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/configs/AbstractMeterConfig.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.ringcentral.platform.metrics.configs;
22

33
import com.ringcentral.platform.metrics.MetricContext;
4-
import com.ringcentral.platform.metrics.dimensions.*;
4+
import com.ringcentral.platform.metrics.labels.*;
55

66
import java.util.*;
77

@@ -11,40 +11,40 @@
1111
public abstract class AbstractMeterConfig<IC extends MeterInstanceConfig, SC extends MeterSliceConfig<IC>>
1212
extends AbstractMetricConfig implements MeterConfig<IC, SC> {
1313

14-
private final List<MetricDimension> dimensions;
15-
private final MetricDimensionValuesPredicate exclusionPredicate;
14+
private final List<Label> labels;
15+
private final LabelValuesPredicate exclusionPredicate;
1616
private final SC allSliceConfig;
1717
private final Set<SC> sliceConfigs;
1818

1919
protected AbstractMeterConfig(
2020
boolean enabled,
2121
String description,
22-
MetricDimensionValues prefixDimensionValues,
23-
List<MetricDimension> dimensions,
24-
MetricDimensionValuesPredicate exclusionPredicate,
22+
LabelValues prefixLabelValues,
23+
List<Label> labels,
24+
LabelValuesPredicate exclusionPredicate,
2525
SC allSliceConfig,
2626
Set<SC> sliceConfigs,
2727
MetricContext context) {
2828

2929
super(
3030
enabled,
3131
description,
32-
prefixDimensionValues,
32+
prefixLabelValues,
3333
context);
3434

35-
this.dimensions = dimensions != null ? dimensions : emptyList();
35+
this.labels = labels != null ? labels : emptyList();
3636
this.exclusionPredicate = exclusionPredicate;
3737
this.allSliceConfig = requireNonNull(allSliceConfig);
3838
this.sliceConfigs = sliceConfigs != null ? sliceConfigs : emptySet();
3939
}
4040

4141
@Override
42-
public List<MetricDimension> dimensions() {
43-
return dimensions;
42+
public List<Label> labels() {
43+
return labels;
4444
}
4545

4646
@Override
47-
public MetricDimensionValuesPredicate exclusionPredicate() {
47+
public LabelValuesPredicate exclusionPredicate() {
4848
return exclusionPredicate;
4949
}
5050

0 commit comments

Comments
 (0)