Skip to content

Commit eb617d1

Browse files
authored
Replace LinkedList (#3132)
See #3131 (comment)
1 parent 5e6113c commit eb617d1

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

implementations/micrometer-registry-prometheus/src/main/java/io/micrometer/prometheus/PrometheusMeterRegistry.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import java.io.IOException;
3232
import java.io.StringWriter;
3333
import java.io.Writer;
34+
import java.util.ArrayList;
3435
import java.util.Enumeration;
35-
import java.util.LinkedList;
3636
import java.util.List;
3737
import java.util.Set;
3838
import java.util.concurrent.ConcurrentHashMap;
@@ -194,12 +194,12 @@ public DistributionSummary newDistributionSummary(Meter.Id id, DistributionStati
194194
double count = summary.count();
195195

196196
if (percentileValues.length > 0) {
197-
List<String> quantileKeys = new LinkedList<>(tagKeys);
197+
List<String> quantileKeys = new ArrayList<>(tagKeys);
198198
quantileKeys.add("quantile");
199199

200200
// satisfies https://prometheus.io/docs/concepts/metric_types/#summary
201201
for (ValueAtPercentile v : percentileValues) {
202-
List<String> quantileValues = new LinkedList<>(tagValues);
202+
List<String> quantileValues = new ArrayList<>(tagValues);
203203
quantileValues.add(Collector.doubleToGoString(v.percentile()));
204204
samples.add(new Collector.MetricFamilySamples.Sample(
205205
conventionName, quantileKeys, quantileValues, v.value()));
@@ -211,23 +211,23 @@ public DistributionSummary newDistributionSummary(Meter.Id id, DistributionStati
211211
// Prometheus doesn't balk at a metric being BOTH a histogram and a summary
212212
type = Collector.Type.HISTOGRAM;
213213

214-
List<String> histogramKeys = new LinkedList<>(tagKeys);
214+
List<String> histogramKeys = new ArrayList<>(tagKeys);
215215
String sampleName = conventionName + "_bucket";
216216
switch (summary.histogramFlavor()) {
217217
case Prometheus:
218218
histogramKeys.add("le");
219219

220220
// satisfies https://prometheus.io/docs/concepts/metric_types/#histogram
221221
for (CountAtBucket c : histogramCounts) {
222-
final List<String> histogramValues = new LinkedList<>(tagValues);
222+
final List<String> histogramValues = new ArrayList<>(tagValues);
223223
histogramValues.add(Collector.doubleToGoString(c.bucket()));
224224
samples.add(new Collector.MetricFamilySamples.Sample(
225225
sampleName, histogramKeys, histogramValues, c.count()));
226226
}
227227

228228
if (Double.isFinite(histogramCounts[histogramCounts.length - 1].bucket())) {
229229
// the +Inf bucket should always equal `count`
230-
final List<String> histogramValues = new LinkedList<>(tagValues);
230+
final List<String> histogramValues = new ArrayList<>(tagValues);
231231
histogramValues.add("+Inf");
232232
samples.add(new Collector.MetricFamilySamples.Sample(
233233
sampleName, histogramKeys, histogramValues, count));
@@ -237,7 +237,7 @@ public DistributionSummary newDistributionSummary(Meter.Id id, DistributionStati
237237
histogramKeys.add("vmrange");
238238

239239
for (CountAtBucket c : histogramCounts) {
240-
final List<String> histogramValuesVM = new LinkedList<>(tagValues);
240+
final List<String> histogramValuesVM = new ArrayList<>(tagValues);
241241
histogramValuesVM.add(FixedBoundaryVictoriaMetricsHistogram.getRangeTagValue(c.bucket()));
242242
samples.add(new Collector.MetricFamilySamples.Sample(
243243
sampleName, histogramKeys, histogramValuesVM, c.count()));
@@ -336,13 +336,13 @@ protected Meter newMeter(Meter.Id id, Meter.Type type, Iterable<Measurement> mea
336336
applyToCollector(id, (collector) -> {
337337
List<String> tagValues = tagValues(id);
338338
collector.add(tagValues, (conventionName, tagKeys) -> {
339-
List<String> statKeys = new LinkedList<>(tagKeys);
339+
List<String> statKeys = new ArrayList<>(tagKeys);
340340
statKeys.add("statistic");
341341

342342
return Stream.of(new MicrometerCollector.Family(finalPromType, conventionName,
343343
stream(measurements.spliterator(), false)
344344
.map(m -> {
345-
List<String> statValues = new LinkedList<>(tagValues);
345+
List<String> statValues = new ArrayList<>(tagValues);
346346
statValues.add(m.getStatistic().toString());
347347

348348
String name = conventionName;
@@ -393,12 +393,12 @@ private void addDistributionStatisticSamples(DistributionStatisticConfig distrib
393393
double count = histogramSnapshot.count();
394394

395395
if (percentileValues.length > 0) {
396-
List<String> quantileKeys = new LinkedList<>(tagKeys);
396+
List<String> quantileKeys = new ArrayList<>(tagKeys);
397397
quantileKeys.add("quantile");
398398

399399
// satisfies https://prometheus.io/docs/concepts/metric_types/#summary
400400
for (ValueAtPercentile v : percentileValues) {
401-
List<String> quantileValues = new LinkedList<>(tagValues);
401+
List<String> quantileValues = new ArrayList<>(tagValues);
402402
quantileValues.add(Collector.doubleToGoString(v.percentile()));
403403
samples.add(new Collector.MetricFamilySamples.Sample(
404404
conventionName, quantileKeys, quantileValues, v.value(TimeUnit.SECONDS)));
@@ -410,7 +410,7 @@ private void addDistributionStatisticSamples(DistributionStatisticConfig distrib
410410
// Prometheus doesn't balk at a metric being BOTH a histogram and a summary
411411
type = Collector.Type.HISTOGRAM;
412412

413-
List<String> histogramKeys = new LinkedList<>(tagKeys);
413+
List<String> histogramKeys = new ArrayList<>(tagKeys);
414414

415415
String sampleName = conventionName + "_bucket";
416416
switch (prometheusConfig.histogramFlavor()) {
@@ -419,14 +419,14 @@ private void addDistributionStatisticSamples(DistributionStatisticConfig distrib
419419

420420
// satisfies https://prometheus.io/docs/concepts/metric_types/#histogram
421421
for (CountAtBucket c : histogramCounts) {
422-
final List<String> histogramValues = new LinkedList<>(tagValues);
422+
final List<String> histogramValues = new ArrayList<>(tagValues);
423423
histogramValues.add(Collector.doubleToGoString(c.bucket(TimeUnit.SECONDS)));
424424
samples.add(new Collector.MetricFamilySamples.Sample(
425425
sampleName, histogramKeys, histogramValues, c.count()));
426426
}
427427

428428
// the +Inf bucket should always equal `count`
429-
final List<String> histogramValues = new LinkedList<>(tagValues);
429+
final List<String> histogramValues = new ArrayList<>(tagValues);
430430
histogramValues.add("+Inf");
431431
samples.add(new Collector.MetricFamilySamples.Sample(
432432
sampleName, histogramKeys, histogramValues, count));
@@ -435,7 +435,7 @@ private void addDistributionStatisticSamples(DistributionStatisticConfig distrib
435435
histogramKeys.add("vmrange");
436436

437437
for (CountAtBucket c : histogramCounts) {
438-
final List<String> histogramValuesVM = new LinkedList<>(tagValues);
438+
final List<String> histogramValuesVM = new ArrayList<>(tagValues);
439439
histogramValuesVM.add(FixedBoundaryVictoriaMetricsHistogram.getRangeTagValue(c.bucket()));
440440
samples.add(new Collector.MetricFamilySamples.Sample(
441441
sampleName, histogramKeys, histogramValuesVM, c.count()));

micrometer-core/src/test/java/io/micrometer/core/instrument/step/StepFunctionTimerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.junit.jupiter.api.Test;
2222

2323
import java.time.Duration;
24-
import java.util.LinkedList;
24+
import java.util.ArrayDeque;
2525
import java.util.Queue;
2626
import java.util.concurrent.TimeUnit;
2727

@@ -53,12 +53,12 @@ void totalTimeWhenStateObjectChangedToNullShouldWorkWithChangedTimeUnit() {
5353
@Issue("#1814")
5454
@Test
5555
void meanShouldWorkIfTotalNotCalled() {
56-
Queue<Long> counts = new LinkedList<>();
56+
Queue<Long> counts = new ArrayDeque<>();
5757
counts.add(2L);
5858
counts.add(5L);
5959
counts.add(10L);
6060

61-
Queue<Double> totalTimes = new LinkedList<>();
61+
Queue<Double> totalTimes = new ArrayDeque<>();
6262
totalTimes.add(150.0);
6363
totalTimes.add(300.0);
6464
totalTimes.add(1000.0);

0 commit comments

Comments
 (0)