Skip to content

Commit 3479516

Browse files
committed
#33: SampleMaker -> SamplesProducer, add Samples to InstanceSample rather than returning them
1 parent de3f3ed commit 3479516

File tree

22 files changed

+337
-263
lines changed

22 files changed

+337
-263
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1817,7 +1817,7 @@ miSampleSpecModsProvider.addMod(
18171817
(metric, instance, currSpec) ->
18181818
instanceSampleSpec().name(currSpec.name().replaceLast(currSpec.name().lastPart() + "_svc")));
18191819

1820-
PrometheusInstanceSampleMaker miSampleMaker = new PrometheusInstanceSampleMaker(
1820+
PrometheusInstanceSamplesProducer miSamplesProducer = new PrometheusInstanceSamplesProducer(
18211821
null, // totalInstanceNameSuffix. defaults to null that means no suffix
18221822
"all"); // dimensionalTotalInstanceNameSuffix. defaults to "all"
18231823

@@ -1831,15 +1831,15 @@ sampleSpecModsProvider.addMod(
18311831
(instanceSampleSpec, instance, measurableValues, measurable, currSpec) ->
18321832
measurable instanceof Max ? sampleSpec().disable() : sampleSpec());
18331833

1834-
PrometheusSampleMaker sampleMaker = new PrometheusSampleMaker();
1834+
PrometheusSamplesProducer samplesProducer = new PrometheusSamplesProducer();
18351835

18361836
PrometheusInstanceSamplesProvider miSamplesProvider = new PrometheusInstanceSamplesProvider(
18371837
miSampleSpecProvider,
18381838
miSampleSpecModsProvider,
1839-
miSampleMaker,
1839+
miSamplesProducer,
18401840
sampleSpecProvider,
18411841
sampleSpecModsProvider,
1842-
sampleMaker,
1842+
samplesProducer,
18431843
registry);
18441844

18451845
PrometheusMetricsExporter exporter = new PrometheusMetricsExporter(

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

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

3-
import java.util.*;
3+
import java.util.ArrayList;
4+
import java.util.List;
45

5-
import static java.util.Objects.*;
6+
import static java.util.Objects.requireNonNull;
67

7-
public class AbstractInstanceSample<S extends Sample<S>> implements InstanceSample<S> {
8+
public class AbstractInstanceSample<S extends Sample> implements InstanceSample<S> {
89

910
protected final List<S> samples;
1011

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

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
import static java.util.Objects.requireNonNull;
1212

1313
public abstract class AbstractInstanceSamplesProvider<
14-
S extends Sample<S>,
14+
S extends Sample,
1515
SS extends SampleSpec,
1616
SSP extends SampleSpecProvider<SS, ISS>,
17-
SM extends SampleMaker<S, SS, ISS, IS>,
17+
SP extends SamplesProducer<S, SS, ISS, IS>,
1818
IS extends InstanceSample<S>,
1919
ISS extends InstanceSampleSpec,
2020
ISSP extends InstanceSampleSpecProvider<ISS>,
@@ -26,7 +26,7 @@ public abstract class AbstractInstanceSamplesProvider<
2626

2727
private final SSP sampleSpecProvider;
2828
private final PredicativeMetricNamedInfoProvider<SSP> sampleSpecModsProvider;
29-
private final SM sampleMaker;
29+
private final SP samplesProducer;
3030

3131
private final MetricRegistry metricRegistry;
3232

@@ -36,7 +36,7 @@ public AbstractInstanceSamplesProvider(
3636
ISM instanceSampleMaker,
3737
SSP sampleSpecProvider,
3838
PredicativeMetricNamedInfoProvider<SSP> sampleSpecModsProvider,
39-
SM sampleMaker,
39+
SP samplesProducer,
4040
MetricRegistry metricRegistry) {
4141

4242
this.instanceSampleSpecProvider = requireNonNull(instanceSampleSpecProvider);
@@ -45,7 +45,7 @@ public AbstractInstanceSamplesProvider(
4545

4646
this.sampleSpecProvider = requireNonNull(sampleSpecProvider);
4747
this.sampleSpecModsProvider = sampleSpecModsProvider;
48-
this.sampleMaker = requireNonNull(sampleMaker);
48+
this.samplesProducer = requireNonNull(samplesProducer);
4949

5050
this.metricRegistry = requireNonNull(metricRegistry);
5151
}
@@ -101,11 +101,7 @@ public Set<IS> instanceSamples() {
101101
return;
102102
}
103103

104-
S sample = sampleMaker.makeSample(sampleSpec, instanceSampleSpec, instanceSample);
105-
106-
if (sample != null) {
107-
instanceSample.add(sample);
108-
}
104+
samplesProducer.produceSamples(sampleSpec, instanceSampleSpec, instanceSample);
109105
});
110106

111107
if (!instanceSample.isEmpty()) {
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.ringcentral.platform.metrics.samples;
2+
3+
public abstract class AbstractSamplesProducer<
4+
S extends Sample,
5+
SS extends SampleSpec,
6+
ISS extends InstanceSampleSpec,
7+
IS extends InstanceSample<S>> implements SamplesProducer<S, SS, ISS, IS> {
8+
9+
public void produceSamples(SS spec, ISS instanceSampleSpec, IS instanceSample) {
10+
instanceSample.add(makeSample(spec, instanceSampleSpec, instanceSample));
11+
}
12+
13+
protected abstract S makeSample(SS spec, ISS instanceSampleSpec, IS instanceSample);
14+
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import java.util.Set;
66

77
public class CompositeInstanceSamplesProvider<
8-
S extends Sample<S>,
8+
S extends Sample,
99
IS extends InstanceSample<S>,
1010
ISP extends InstanceSamplesProvider<? extends S, ? extends IS>> implements InstanceSamplesProvider<S, IS> {
1111

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class DefaultInstanceSamplesProvider extends AbstractInstanceSamplesProvi
77
DefaultSample,
88
DefaultSampleSpec,
99
SampleSpecProvider<DefaultSampleSpec, DefaultInstanceSampleSpec>,
10-
SampleMaker<DefaultSample, DefaultSampleSpec, DefaultInstanceSampleSpec, InstanceSample<DefaultSample>>,
10+
SamplesProducer<DefaultSample, DefaultSampleSpec, DefaultInstanceSampleSpec, InstanceSample<DefaultSample>>,
1111
InstanceSample<DefaultSample>,
1212
DefaultInstanceSampleSpec,
1313
InstanceSampleSpecProvider<DefaultInstanceSampleSpec>,
@@ -66,7 +66,7 @@ public DefaultInstanceSamplesProvider(
6666
new DefaultInstanceSampleMaker(),
6767
sampleSpecProvider,
6868
sampleSpecModsProvider,
69-
new DefaultSampleMaker(),
69+
new DefaultSamplesProducer(),
7070
metricRegistry);
7171
}
7272

@@ -76,7 +76,7 @@ public DefaultInstanceSamplesProvider(
7676
InstanceSampleMaker<DefaultSample, InstanceSample<DefaultSample>, DefaultInstanceSampleSpec> instanceSampleMaker,
7777
SampleSpecProvider<DefaultSampleSpec, DefaultInstanceSampleSpec> sampleSpecProvider,
7878
PredicativeMetricNamedInfoProvider<SampleSpecProvider<DefaultSampleSpec, DefaultInstanceSampleSpec>> sampleSpecModsProvider,
79-
SampleMaker<DefaultSample, DefaultSampleSpec, DefaultInstanceSampleSpec, InstanceSample<DefaultSample>> sampleMaker,
79+
SamplesProducer<DefaultSample, DefaultSampleSpec, DefaultInstanceSampleSpec, InstanceSample<DefaultSample>> samplesProducer,
8080
MetricRegistry metricRegistry) {
8181

8282
super(
@@ -85,7 +85,7 @@ public DefaultInstanceSamplesProvider(
8585
instanceSampleMaker,
8686
sampleSpecProvider,
8787
sampleSpecModsProvider,
88-
sampleMaker,
88+
samplesProducer,
8989
metricRegistry);
9090
}
9191
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.ringcentral.platform.metrics.samples;
22

3-
public class DefaultSample implements Sample<DefaultSample> {
3+
public class DefaultSample implements Sample {
44

55
private final String name;
66
private final Object value;

metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/samples/DefaultSampleMaker.java renamed to metrics-facade-base/src/main/java/com/ringcentral/platform/metrics/samples/DefaultSamplesProducer.java

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

33
import com.ringcentral.platform.metrics.dimensions.MetricDimensionValue;
4-
import static java.lang.String.*;
54

6-
public class DefaultSampleMaker implements SampleMaker<
5+
import static java.lang.String.join;
6+
7+
public class DefaultSamplesProducer extends AbstractSamplesProducer<
78
DefaultSample,
89
DefaultSampleSpec,
910
DefaultInstanceSampleSpec,
@@ -15,13 +16,13 @@ public class DefaultSampleMaker implements SampleMaker<
1516
private final String namePartsDelimiter;
1617
private final String measurableNameDelimiter;
1718

18-
public DefaultSampleMaker() {
19+
public DefaultSamplesProducer() {
1920
this(
2021
DEFAULT_NAME_PARTS_DELIMITER,
2122
DEFAULT_MEASURABLE_NAME_DELIMITER);
2223
}
2324

24-
public DefaultSampleMaker(
25+
public DefaultSamplesProducer(
2526
String namePartsDelimiter,
2627
String measurableNameDelimiter) {
2728

@@ -30,7 +31,7 @@ public DefaultSampleMaker(
3031
}
3132

3233
@Override
33-
public DefaultSample makeSample(
34+
protected DefaultSample makeSample(
3435
DefaultSampleSpec spec,
3536
DefaultInstanceSampleSpec instanceSampleSpec,
3637
InstanceSample<DefaultSample> instanceSample) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.List;
44

5-
public interface InstanceSample<S extends Sample<S>> {
5+
public interface InstanceSample<S extends Sample> {
66
void add(S sample);
77
List<S> samples();
88

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

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

33
public interface InstanceSampleMaker<
4-
S extends Sample<S>,
4+
S extends Sample,
55
IS extends InstanceSample<S>,
66
ISS extends InstanceSampleSpec> {
77

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
import java.util.Set;
44

5-
public interface InstanceSamplesProvider<S extends Sample<S>, IS extends InstanceSample<S>> {
5+
public interface InstanceSamplesProvider<S extends Sample, IS extends InstanceSample<S>> {
66
Set<IS> instanceSamples();
77
}
Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,3 @@
11
package com.ringcentral.platform.metrics.samples;
22

3-
import java.util.List;
4-
5-
import static java.util.Collections.emptyList;
6-
7-
public interface Sample<S extends Sample<S>> {
8-
default boolean hasChildren() {
9-
return !children().isEmpty();
10-
}
11-
12-
default List<S> children() {
13-
return emptyList();
14-
}
15-
}
3+
public interface Sample {}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.ringcentral.platform.metrics.samples;
22

3-
public interface SampleMaker<
4-
S extends Sample<S>,
3+
public interface SamplesProducer<
4+
S extends Sample,
55
SS extends SampleSpec,
66
ISS extends InstanceSampleSpec,
77
IS extends InstanceSample<S>> {
88

9-
S makeSample(SS spec, ISS instanceSampleSpec, IS instanceSample);
9+
void produceSamples(SS spec, ISS instanceSampleSpec, IS instanceSample);
1010
}

metrics-facade-prometheus/src/main/java/com/ringcentral/platform/metrics/samples/prometheus/PrometheusInstanceSample.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,6 @@ public void add(PrometheusSample sample) {
8686
} else {
8787
super.add(sample);
8888
}
89-
90-
if (sample.hasChildren()) {
91-
for (PrometheusSample childSample : sample.children()) {
92-
add(childSample);
93-
}
94-
}
9589
}
9690

9791
@Override

metrics-facade-prometheus/src/main/java/com/ringcentral/platform/metrics/samples/prometheus/PrometheusInstanceSamplesProvider.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ public class PrometheusInstanceSamplesProvider extends AbstractInstanceSamplesPr
88
PrometheusSample,
99
PrometheusSampleSpec,
1010
SampleSpecProvider<PrometheusSampleSpec, PrometheusInstanceSampleSpec>,
11-
SampleMaker<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample>,
11+
SamplesProducer<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample>,
1212
PrometheusInstanceSample,
1313
PrometheusInstanceSampleSpec,
1414
InstanceSampleSpecProvider<PrometheusInstanceSampleSpec>,
@@ -31,7 +31,7 @@ public PrometheusInstanceSamplesProvider(
3131
new PrometheusInstanceSampleMaker(),
3232
new PrometheusSampleSpecProvider(),
3333
null,
34-
new PrometheusSampleMaker(),
34+
new PrometheusSamplesProducer(),
3535
metricRegistry);
3636
}
3737

@@ -81,7 +81,7 @@ public PrometheusInstanceSamplesProvider(
8181
new PrometheusInstanceSampleMaker(),
8282
sampleSpecProvider,
8383
sampleSpecModsProvider,
84-
new PrometheusSampleMaker(),
84+
new PrometheusSamplesProducer(),
8585
metricRegistry);
8686
}
8787

@@ -91,7 +91,7 @@ public PrometheusInstanceSamplesProvider(
9191
InstanceSampleMaker<PrometheusSample, PrometheusInstanceSample, PrometheusInstanceSampleSpec> instanceSampleMaker,
9292
SampleSpecProvider<PrometheusSampleSpec, PrometheusInstanceSampleSpec> sampleSpecProvider,
9393
PredicativeMetricNamedInfoProvider<SampleSpecProvider<PrometheusSampleSpec, PrometheusInstanceSampleSpec>> sampleSpecModsProvider,
94-
SampleMaker<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample> sampleMaker,
94+
SamplesProducer<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample> samplesProducer,
9595
MetricRegistry metricRegistry) {
9696

9797
super(
@@ -100,7 +100,7 @@ public PrometheusInstanceSamplesProvider(
100100
instanceSampleMaker,
101101
sampleSpecProvider,
102102
sampleSpecModsProvider,
103-
sampleMaker,
103+
samplesProducer,
104104
metricRegistry);
105105
}
106106
}

metrics-facade-prometheus/src/main/java/com/ringcentral/platform/metrics/samples/prometheus/PrometheusInstanceSamplesProviderBuilder.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import com.ringcentral.platform.metrics.infoProviders.PredicativeMetricNamedInfoProvider;
55
import com.ringcentral.platform.metrics.samples.InstanceSampleMaker;
66
import com.ringcentral.platform.metrics.samples.InstanceSampleSpecProvider;
7-
import com.ringcentral.platform.metrics.samples.SampleMaker;
87
import com.ringcentral.platform.metrics.samples.SampleSpecProvider;
8+
import com.ringcentral.platform.metrics.samples.SamplesProducer;
99

1010
import static java.util.Objects.requireNonNull;
1111

@@ -16,15 +16,15 @@ public class PrometheusInstanceSamplesProviderBuilder {
1616
private InstanceSampleMaker<PrometheusSample, PrometheusInstanceSample, PrometheusInstanceSampleSpec> instanceSampleMaker;
1717
private SampleSpecProvider<PrometheusSampleSpec, PrometheusInstanceSampleSpec> sampleSpecProvider;
1818
private PredicativeMetricNamedInfoProvider<SampleSpecProvider<PrometheusSampleSpec, PrometheusInstanceSampleSpec>> sampleSpecModsProvider;
19-
private SampleMaker<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample> sampleMaker;
19+
private SamplesProducer<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample> samplesProducer;
2020
private final MetricRegistry metricRegistry;
2121

2222
public PrometheusInstanceSamplesProviderBuilder(MetricRegistry metricRegistry) {
2323
this.metricRegistry = requireNonNull(metricRegistry);
2424
this.instanceSampleSpecProvider = new PrometheusInstanceSampleSpecProvider();
2525
this.instanceSampleMaker = new PrometheusInstanceSampleMaker();
2626
this.sampleSpecProvider = new PrometheusSampleSpecProvider();
27-
this.sampleMaker = new PrometheusSampleMaker();
27+
this.samplesProducer = new PrometheusSamplesProducer();
2828
}
2929

3030
public static PrometheusInstanceSamplesProviderBuilder prometheusInstanceSamplesProvider(MetricRegistry metricRegistry) {
@@ -56,8 +56,8 @@ public PrometheusInstanceSamplesProviderBuilder sampleSpecModsProvider(Predicati
5656
return this;
5757
}
5858

59-
public PrometheusInstanceSamplesProviderBuilder sampleMaker(SampleMaker<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample> sampleMaker) {
60-
this.sampleMaker = requireNonNull(sampleMaker);
59+
public PrometheusInstanceSamplesProviderBuilder samplesProducer(SamplesProducer<PrometheusSample, PrometheusSampleSpec, PrometheusInstanceSampleSpec, PrometheusInstanceSample> samplesProducer) {
60+
this.samplesProducer = requireNonNull(samplesProducer);
6161
return this;
6262
}
6363

@@ -68,7 +68,7 @@ public PrometheusInstanceSamplesProvider build() {
6868
instanceSampleMaker,
6969
sampleSpecProvider,
7070
sampleSpecModsProvider,
71-
sampleMaker,
71+
samplesProducer,
7272
metricRegistry);
7373
}
7474
}

0 commit comments

Comments
 (0)