mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
@@ -123,7 +123,14 @@ public class MapLabels implements NBLabels {
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return this.linearize("name");
|
||||
StringBuilder sb = new StringBuilder("{");
|
||||
labels.forEach((k,v) -> {
|
||||
sb.append(k).append(":\\\"").append(v).append("\\\"").append(",");
|
||||
});
|
||||
sb.setLength(sb.length()-",".length());
|
||||
sb.append("}");
|
||||
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -19,13 +19,11 @@ package io.nosqlbench.api.engine.metrics.reporters;
|
||||
import com.codahale.metrics.*;
|
||||
import io.nosqlbench.api.config.NBLabeledElement;
|
||||
import io.nosqlbench.api.config.NBLabels;
|
||||
import io.nosqlbench.api.testutils.Perf;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Writer;
|
||||
import java.time.Clock;
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -70,7 +68,7 @@ public enum PromExpositionFormat {
|
||||
|
||||
final long count = counting.getCount();
|
||||
buffer
|
||||
.append(labels.modifyValue("name", n -> n+"_total"))
|
||||
.append(labels.modifyValue("name", n -> n+"_total").linearize("name"))
|
||||
.append(' ')
|
||||
.append(count)
|
||||
.append(' ')
|
||||
@@ -84,37 +82,37 @@ public enum PromExpositionFormat {
|
||||
for (final double quantile : new double[]{0.5, 0.75, 0.90, 0.95, 0.98, 0.99, 0.999}) {
|
||||
final double value = snapshot.getValue(quantile);
|
||||
buffer
|
||||
.append(labels.and("quantile", String.valueOf(quantile)))
|
||||
.append(labels.and("quantile", String.valueOf(quantile)).linearize("name"))
|
||||
.append(' ')
|
||||
.append(value)
|
||||
.append('\n');
|
||||
}
|
||||
final double snapshotCount =snapshot.size();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_count"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_count").linearize("name"))
|
||||
.append(' ')
|
||||
.append(snapshotCount)
|
||||
.append('\n');
|
||||
buffer.append("# TYPE ").append(labels.only("name")).append("_max").append(" gauge\n");
|
||||
final long maxValue = snapshot.getMax();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_max"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_max").linearize("name"))
|
||||
.append(' ')
|
||||
.append(maxValue)
|
||||
.append('\n');
|
||||
buffer.append("# TYPE ").append(labels.only("name")).append("_min").append(" gauge\n");
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_min").only("name")).append(" gauge\n");
|
||||
final long minValue = snapshot.getMin();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_min"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_min").linearize("name"))
|
||||
.append(' ')
|
||||
.append(minValue)
|
||||
.append('\n');
|
||||
buffer.append("# TYPE ").append(labels.only("name")).append("_mean").append(" gauge\n");
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_mean").only("name")).append(" gauge\n");
|
||||
final double meanValue = snapshot.getMean();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_mean"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_mean").linearize("name"))
|
||||
.append(' ')
|
||||
.append(meanValue)
|
||||
.append('\n');
|
||||
buffer.append("# TYPE ").append(labels.only("name")).append("_stdev").append(" gauge\n");
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_stdev").only("name")).append(" gauge\n");
|
||||
final double stdDev = snapshot.getStdDev();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_stdev"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_stdev").linearize("name"))
|
||||
.append(' ')
|
||||
.append(stdDev)
|
||||
.append('\n');
|
||||
@@ -125,18 +123,18 @@ public enum PromExpositionFormat {
|
||||
final Object value = gauge.getValue();
|
||||
if (value instanceof final Number number) {
|
||||
final double doubleValue = number.doubleValue();
|
||||
buffer.append(labels)
|
||||
buffer.append(labels.linearize("name"))
|
||||
.append(' ')
|
||||
.append(doubleValue)
|
||||
.append('\n');
|
||||
} else if (value instanceof final CharSequence sequence) {
|
||||
final String stringValue = sequence.toString();
|
||||
buffer.append(labels)
|
||||
buffer.append(labels.linearize("name"))
|
||||
.append(' ')
|
||||
.append(stringValue)
|
||||
.append('\n');
|
||||
} else if (value instanceof final String stringValue) {
|
||||
buffer.append(labels)
|
||||
buffer.append(labels.linearize("name"))
|
||||
.append(' ')
|
||||
.append(stringValue)
|
||||
.append('\n');
|
||||
@@ -147,28 +145,28 @@ public enum PromExpositionFormat {
|
||||
if (metric instanceof final Metered meter) {
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_1mRate").only("name")).append(" gauge\n");
|
||||
final double oneMinuteRate = meter.getOneMinuteRate();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_1mRate"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_1mRate").linearize("name"))
|
||||
.append(' ')
|
||||
.append(oneMinuteRate)
|
||||
.append('\n');
|
||||
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_5mRate").only("name")).append(" gauge\n");
|
||||
final double fiveMinuteRate = meter.getFiveMinuteRate();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_5mRate"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_5mRate").linearize("name"))
|
||||
.append(' ')
|
||||
.append(fiveMinuteRate)
|
||||
.append('\n');
|
||||
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_15mRate").only("name")).append(" gauge\n");
|
||||
final double fifteenMinuteRate = meter.getFifteenMinuteRate();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_15mRate"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_15mRate").linearize("name"))
|
||||
.append(' ')
|
||||
.append(fifteenMinuteRate)
|
||||
.append('\n');
|
||||
|
||||
buffer.append("# TYPE ").append(labels.modifyValue("name",n->n+"_meanRate").only("name")).append(" gauge\n");
|
||||
final double meanRate = meter.getMeanRate();
|
||||
buffer.append(labels.modifyValue("name",n->n+"_meanRate"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_meanRate").linearize("name"))
|
||||
.append(' ')
|
||||
.append(meanRate)
|
||||
.append('\n');
|
||||
|
||||
@@ -74,6 +74,7 @@ public class PromPushReporter extends ScheduledReporter {
|
||||
}
|
||||
PromPushReporter.logger.debug("formatted {} metrics in prom expo format", total);
|
||||
final String exposition = sb.toString();
|
||||
logger.trace(() -> "prom exposition format:\n" + exposition);
|
||||
|
||||
final double backoffRatio=1.5;
|
||||
final double maxBackoffSeconds=10;
|
||||
|
||||
Reference in New Issue
Block a user