in geronimo-metrics-common/src/main/java/org/apache/geronimo/microprofile/metrics/common/prometheus/PrometheusFormatter.java [260:283]
private StringBuilder toPrometheus(final String registryKey, final String keyBase, final String keyUnit,
final Snapshot snapshot, final Metadata metadata, final Collection<Tag> tags) {
final Function<Stream<Tag>, Collection<Tag>> metaFactory = newTags -> Stream.concat(
tags == null ? Stream.empty() : tags.stream(), newTags).distinct().collect(toList());
final String completeKey = keyBase + keyUnit;
final String type = metadata == null ? null : metadata.getType();
return new StringBuilder()
.append(value(registryKey, keyBase + "_min" + keyUnit, snapshot.getMin(), type, metadata, tags))
.append(value(registryKey, keyBase + "_max" + keyUnit, snapshot.getMax(), type, metadata, tags))
.append(value(registryKey, keyBase + "_mean" + keyUnit, snapshot.getMean(), type, metadata, tags))
.append(value(registryKey, keyBase + "_stddev" + keyUnit, snapshot.getStdDev(), type, metadata, tags))
.append(value(registryKey, completeKey, snapshot.getMedian(), type, metadata,
metaFactory.apply(Stream.of(new Tag("quantile", "0.5")))))
.append(value(registryKey, completeKey, snapshot.get75thPercentile(), type, metadata,
metaFactory.apply(Stream.of(new Tag("quantile", "0.75")))))
.append(value(registryKey, completeKey, snapshot.get95thPercentile(), type, metadata,
metaFactory.apply(Stream.of(new Tag("quantile", "0.95")))))
.append(value(registryKey, completeKey, snapshot.get98thPercentile(), type, metadata,
metaFactory.apply(Stream.of(new Tag("quantile", "0.98")))))
.append(value(registryKey, completeKey, snapshot.get99thPercentile(), type, metadata,
metaFactory.apply(Stream.of(new Tag("quantile", "0.99")))))
.append(value(registryKey, completeKey, snapshot.get999thPercentile(), type, metadata,
metaFactory.apply(Stream.of(new Tag("quantile", "0.999")))));
}