mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-02-25 18:55:28 -06:00
remove confusing type and dimensions labeling methods
This commit is contained in:
parent
4294758c52
commit
bf3e9636c0
@ -51,7 +51,7 @@ public class AmqpAdapterMetrics {
|
||||
|
||||
public AmqpAdapterMetrics(final AmqpBaseOpDispenser amqpBaseOpDispenser, final NBLabeledElement labeledParent) {
|
||||
this.amqpBaseOpDispenser = amqpBaseOpDispenser;
|
||||
labels=labeledParent.getLabels().andTypes("name", AmqpAdapterMetrics.class.getSimpleName());
|
||||
labels=labeledParent.getLabels().and("name", AmqpAdapterMetrics.class.getSimpleName());
|
||||
}
|
||||
|
||||
public void initS4JAdapterInstrumentation() {
|
||||
|
@ -71,13 +71,13 @@ public class NamingFolio {
|
||||
* by name, type, table, keyspace. For now it just returns everything in fully qualified form.
|
||||
*/
|
||||
public String nameFor(NBLabeledElement labeled, String... fields) {
|
||||
NBLabels labelsPlus = labeled.getLabels().andTypes(fields);
|
||||
NBLabels labelsPlus = labeled.getLabels().and(fields);
|
||||
String name = namer.apply(labelsPlus.asMap());
|
||||
return name;
|
||||
}
|
||||
|
||||
public String nameFor(NBLabeledElement labeled, Map<String,String> fields) {
|
||||
NBLabels labelsPlus = labeled.getLabels().andTypes(fields);
|
||||
NBLabels labelsPlus = labeled.getLabels().and(fields);
|
||||
String name = namer.apply(labelsPlus.asMap());
|
||||
return name;
|
||||
|
||||
|
@ -42,6 +42,6 @@ public class CqlTableColumn extends CqlColumnBase {
|
||||
|
||||
@Override
|
||||
public NBLabels getLabels() {
|
||||
return super.getLabels().andTypes("table", table.getName());
|
||||
return super.getLabels().and("table", table.getName());
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +42,6 @@ public class CqlTypeColumn extends CqlColumnBase {
|
||||
|
||||
@Override
|
||||
public NBLabels getLabels() {
|
||||
return super.getLabels().andTypes("name", this.type.getName());
|
||||
return super.getLabels().and("name", this.type.getName());
|
||||
}
|
||||
}
|
||||
|
@ -171,6 +171,6 @@ public class DiagTask_gauge extends BaseDiagTask implements Gauge<Double> {
|
||||
|
||||
@Override
|
||||
public NBLabels getLabels() {
|
||||
return super.getLabels().andTypes("stat",this.stat.toString());
|
||||
return super.getLabels().and("stat",this.stat.toString());
|
||||
}
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ public class KafkaAdapterMetrics {
|
||||
|
||||
public KafkaAdapterMetrics(final KafkaBaseOpDispenser kafkaBaseOpDispenser, final NBLabeledElement labeledParent) {
|
||||
this.kafkaBaseOpDispenser = kafkaBaseOpDispenser;
|
||||
labels=labeledParent.getLabels().andTypes("name",KafkaAdapterMetrics.class.getSimpleName());
|
||||
labels=labeledParent.getLabels().and("name",KafkaAdapterMetrics.class.getSimpleName());
|
||||
}
|
||||
|
||||
public void initS4JAdapterInstrumentation() {
|
||||
|
@ -354,7 +354,7 @@ public class ParsedOp implements LongFunction<Map<String, ?>>, NBLabeledElement,
|
||||
activityCfg.getMap())
|
||||
);
|
||||
|
||||
NBLabels opLabels = parent.getLabels().andTypes("op", this.getName());
|
||||
NBLabels opLabels = parent.getLabels().and("op", this.getName());
|
||||
if (tmap.isStatic("labels")) {
|
||||
Object labelSpecObject = tmap.takeStaticValue("labels", Object.class);
|
||||
if (labelSpecObject instanceof String labelsSpec) {
|
||||
|
@ -95,7 +95,7 @@ public class SimpleActivity implements Activity {
|
||||
|
||||
public SimpleActivity(ActivityDef activityDef, NBLabeledElement parentLabels) {
|
||||
NBLabels activityLabels = parentLabels.getLabels()
|
||||
.andTypes("activity", activityDef.getAlias());
|
||||
.and("activity", activityDef.getAlias());
|
||||
Optional<String> auxLabelSpec = activityDef.getParams().getOptionalString("labels");
|
||||
if (auxLabelSpec.isPresent()) {
|
||||
activityLabels = activityLabels.and(NBLabelSpec.parseLabels(auxLabelSpec.get()));
|
||||
|
@ -161,7 +161,7 @@ public class NBCLI implements Function<String[], Integer>, NBLabeledElement {
|
||||
this.sessionCode = SystemId.genSessionCode(sessionTime);
|
||||
this.sessionName = SessionNamer.format(globalOptions.getSessionName(),sessionTime).replaceAll("SESSIONCODE",sessionCode);
|
||||
this.labels = NBLabels.forKV("appname", "nosqlbench")
|
||||
.andInstances("node",SystemId.getNodeId())
|
||||
.and("node",SystemId.getNodeId())
|
||||
.and(globalOptions.getLabelMap());
|
||||
|
||||
NBCLI.loggerConfig
|
||||
|
@ -59,10 +59,10 @@ public class GrafanaMetricsAnnotator implements Annotator, NBConfigurable {
|
||||
ga.setTime(annotation.getStart());
|
||||
ga.setTimeEnd(annotation.getEnd());
|
||||
|
||||
annotation.getLabels().onlyTypes().asMap().forEach((k, v) -> {
|
||||
annotation.getLabels().asMap().forEach((k, v) -> {
|
||||
ga.getTags().add(k + ":" + v);
|
||||
});
|
||||
annotation.getLabels().onlyInstances().asMap().forEach((k,v)->{
|
||||
annotation.getLabels().asMap().forEach((k,v)->{
|
||||
ga.addText(" " + k + ":" + v);
|
||||
});
|
||||
ga.getTags().add("layer:" + annotation.getLayer().toString());
|
||||
|
@ -82,7 +82,7 @@ public class Scenario implements Callable<ExecutionMetricsResult>, NBLabeledElem
|
||||
|
||||
@Override
|
||||
public NBLabels getLabels() {
|
||||
return this.parentComponent.getLabels().andTypes("scenario", this.scenarioName);
|
||||
return this.parentComponent.getLabels().and("scenario", this.scenarioName);
|
||||
}
|
||||
|
||||
public enum State {
|
||||
|
@ -24,7 +24,7 @@ import java.util.Map;
|
||||
public class AveragePrecision extends BaseRelevancyFunction {
|
||||
private final int k;
|
||||
public AveragePrecision(String name, int k, Map<String,String> labels) {
|
||||
super(name, NBLabels.forKV("k",labels).andTypes(labels));
|
||||
super(name, NBLabels.forKV("k",labels).and(labels));
|
||||
this.k = k;
|
||||
}
|
||||
public AveragePrecision(String name, int k, Object... labels) {
|
||||
|
@ -25,7 +25,7 @@ public class F1 extends BaseRelevancyFunction {
|
||||
private final int k;
|
||||
|
||||
public F1(String name, int k, Map<String,String> labels) {
|
||||
super(name, NBLabels.forKV("k",labels).andTypes(labels));
|
||||
super(name, NBLabels.forKV("k",labels).and(labels));
|
||||
this.k = k;
|
||||
}
|
||||
public F1(String name, int k, Object... labels) {
|
||||
|
@ -25,7 +25,7 @@ public class Precision extends BaseRelevancyFunction {
|
||||
private final int k;
|
||||
|
||||
public Precision(String name, int k, Map<String,String> labels) {
|
||||
super(name,NBLabels.forKV("k",labels).andTypes(labels));
|
||||
super(name,NBLabels.forKV("k",labels).and(labels));
|
||||
this.k = k;
|
||||
}
|
||||
public Precision(String name, int k, Object... labels) {
|
||||
|
@ -29,7 +29,7 @@ public class Recall extends BaseRelevancyFunction {
|
||||
this.k = k;
|
||||
}
|
||||
public Recall(String name, int k, Map<String,String> labels) {
|
||||
super(name, NBLabels.forKV("k",labels).andTypes(labels));
|
||||
super(name, NBLabels.forKV("k",labels).and(labels));
|
||||
this.k = k;
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@ public class ReciprocalRank extends BaseRelevancyFunction {
|
||||
private final int k;
|
||||
|
||||
public ReciprocalRank(String name, int k, Map<String,String> labels) {
|
||||
super(name, NBLabels.forKV("k",labels).andTypes(labels));
|
||||
super(name, NBLabels.forKV("k",labels).and(labels));
|
||||
this.k = k;
|
||||
}
|
||||
public ReciprocalRank(String name, int k, Object... labels) {
|
||||
|
@ -24,17 +24,15 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class MapLabels implements NBLabels {
|
||||
private final Map<String,String> labels;
|
||||
private String[] instanceFields = new String[0];
|
||||
|
||||
public MapLabels(final Map<String, String> labels, String... instanceFields) {
|
||||
verifyValidNamesAndValues(labels);
|
||||
// verifyValidValues(labels);
|
||||
this.labels = Collections.unmodifiableMap(labels);
|
||||
this.instanceFields = instanceFields;
|
||||
}
|
||||
|
||||
|
||||
public MapLabels(final Map<String,String> parentLabels, final Map<String,String> childLabels, String... instanceFields) {
|
||||
public MapLabels(final Map<String,String> parentLabels, final Map<String,String> childLabels) {
|
||||
final Map<String, String> combined = new LinkedHashMap<>(parentLabels);
|
||||
childLabels.forEach((k,v) -> {
|
||||
if (combined.containsKey(k))
|
||||
@ -43,7 +41,6 @@ public class MapLabels implements NBLabels {
|
||||
});
|
||||
verifyValidNamesAndValues(combined);
|
||||
// verifyValidValues(combined);
|
||||
this.instanceFields = instanceFields;
|
||||
labels=Collections.unmodifiableMap(combined);
|
||||
}
|
||||
|
||||
@ -124,27 +121,14 @@ public class MapLabels implements NBLabels {
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapLabels andTypes(final Object... labelsAndValues) {
|
||||
public MapLabels and(final Object... labelsAndValues) {
|
||||
final Map<String,String> childLabels = getStringStringMap(labelsAndValues);
|
||||
return new MapLabels(labels,childLabels);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapLabels and(NBLabels labels) {
|
||||
return new MapLabels(this.labels,labels.asMap(), concat(this.instanceFields,labels.getInstanceFields()));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public MapLabels andInstances(final Object... labelsAndValues) {
|
||||
final Map<String,String> childLabels = getStringStringMap(labelsAndValues);
|
||||
String[] childInstanceFields = getNamesArray(labelsAndValues);
|
||||
return new MapLabels(this.labels,childLabels,concat(this.instanceFields,getNamesArray(labelsAndValues)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public MapLabels andInstances(Map<String, String> instanceLabelsAndValues) {
|
||||
return new MapLabels(this.labels,instanceLabelsAndValues,instanceLabelsAndValues.keySet().toArray(new String[0]));
|
||||
return new MapLabels(this.labels,labels.asMap());
|
||||
}
|
||||
@Override
|
||||
public NBLabels modifyName(final String nameToModify, final Function<String, String> transform) {
|
||||
@ -194,30 +178,7 @@ public class MapLabels implements NBLabels {
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBLabels onlyTypes() {
|
||||
Map<String,String> typesOnlyMap = new LinkedHashMap<>(this.labels);
|
||||
for (String instanceField : this.instanceFields) {
|
||||
typesOnlyMap.remove(instanceField);
|
||||
}
|
||||
return new MapLabels(typesOnlyMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBLabels onlyInstances() {
|
||||
Map<String,String> instancesOnlyMap = new LinkedHashMap<>();
|
||||
for (String instanceField : this.instanceFields) {
|
||||
instancesOnlyMap.put(instanceField,this.labels.get(instanceField));
|
||||
}
|
||||
return new MapLabels(instancesOnlyMap);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getInstanceFields() {
|
||||
return instanceFields;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NBLabels andTypes(final Map<String, String> moreLabels) {
|
||||
public NBLabels and(final Map<String, String> moreLabels) {
|
||||
return new MapLabels(this.labels, moreLabels);
|
||||
}
|
||||
|
||||
|
@ -142,7 +142,7 @@ public interface NBLabels {
|
||||
* Keys and values in "key1", "value1", "key2", "value2", ... form
|
||||
* @return A new NBLabels instance
|
||||
*/
|
||||
NBLabels andTypes(Object... typeLabelsAndValues);
|
||||
NBLabels and(Object... typeLabelsAndValues);
|
||||
|
||||
NBLabels and(NBLabels labels);
|
||||
/**
|
||||
@ -150,10 +150,7 @@ public interface NBLabels {
|
||||
* @param typeLabelsAndValues a map of keys and values
|
||||
* @return A new NBLabels instance
|
||||
*/
|
||||
NBLabels andTypes(Map<String, String> typeLabelsAndValues);
|
||||
NBLabels andInstances(Object... instanceLabelsAndValues);
|
||||
|
||||
NBLabels andInstances(Map<String,String> instanceLabelsAndValues);
|
||||
NBLabels and(Map<String, String> typeLabelsAndValues);
|
||||
|
||||
/**
|
||||
* Return the value of the specified label key.
|
||||
@ -176,9 +173,5 @@ public interface NBLabels {
|
||||
/**
|
||||
* @return a new set of labels which includes only those which are not using per-instance semantics.
|
||||
*/
|
||||
NBLabels onlyTypes();
|
||||
NBLabels onlyInstances();
|
||||
|
||||
String[] getInstanceFields();
|
||||
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ public class ActivityMetrics {
|
||||
* @return the timer, perhaps a different one if it has already been registered
|
||||
*/
|
||||
public static Timer timer(NBLabeledElement parent, String metricFamilyName, int hdrdigits) {
|
||||
final NBLabels labels = parent.getLabels().andTypes("name",sanitize(metricFamilyName));
|
||||
final NBLabels labels = parent.getLabels().and("name",sanitize(metricFamilyName));
|
||||
|
||||
|
||||
Timer registeredTimer = (Timer) register(labels, () ->
|
||||
@ -135,7 +135,7 @@ public class ActivityMetrics {
|
||||
* @return the histogram, perhaps a different one if it has already been registered
|
||||
*/
|
||||
public static Histogram histogram(NBLabeledElement labeled, String metricFamilyName, int hdrdigits) {
|
||||
final NBLabels labels = labeled.getLabels().andTypes("name", sanitize(metricFamilyName));
|
||||
final NBLabels labels = labeled.getLabels().and("name", sanitize(metricFamilyName));
|
||||
return (Histogram) register(labels, () ->
|
||||
new NBMetricHistogram(
|
||||
labels,
|
||||
@ -158,7 +158,7 @@ public class ActivityMetrics {
|
||||
* @return the counter, perhaps a different one if it has already been registered
|
||||
*/
|
||||
public static Counter counter(NBLabeledElement parent, String metricFamilyName) {
|
||||
final NBLabels labels = parent.getLabels().andTypes("name",metricFamilyName);
|
||||
final NBLabels labels = parent.getLabels().and("name",metricFamilyName);
|
||||
return (Counter) register(labels, () -> new NBMetricCounter(labels));
|
||||
}
|
||||
|
||||
@ -174,7 +174,7 @@ public class ActivityMetrics {
|
||||
* @return the meter, perhaps a different one if it has already been registered
|
||||
*/
|
||||
public static Meter meter(NBLabeledElement parent, String metricFamilyName) {
|
||||
final NBLabels labels = parent.getLabels().andTypes("name",sanitize(metricFamilyName));
|
||||
final NBLabels labels = parent.getLabels().and("name",sanitize(metricFamilyName));
|
||||
return (Meter) register(labels, () -> new NBMetricMeter(labels));
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ public class ActivityMetrics {
|
||||
DoubleSummaryGauge anyGauge = null;
|
||||
for (DoubleSummaryGauge.Stat statName: DoubleSummaryGauge.Stat.values()){
|
||||
final NBLabels labels = parent.getLabels()
|
||||
.andTypes("name",sanitize(metricFamilyName))
|
||||
.and("name",sanitize(metricFamilyName))
|
||||
.modifyValue("name", n -> n+"_"+statName.name().toLowerCase());
|
||||
anyGauge= (DoubleSummaryGauge) register(labels, () -> new DoubleSummaryGauge(labels,statName,stats));
|
||||
}
|
||||
@ -213,7 +213,7 @@ public class ActivityMetrics {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <T> Gauge<T> gauge(NBLabeledElement parent, String metricFamilyName, Gauge<T> gauge) {
|
||||
final NBLabels labels = parent.getLabels().andTypes("name",sanitize(metricFamilyName));
|
||||
final NBLabels labels = parent.getLabels().and("name",sanitize(metricFamilyName));
|
||||
|
||||
return (Gauge<T>) register(labels, () -> new NBMetricGaugeWrapper<>(labels,gauge));
|
||||
}
|
||||
|
@ -85,13 +85,13 @@ public class 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.modifyValue("name",n -> n+"_bucket").andTypes("le", String.valueOf(quantile)).linearize("name"))
|
||||
.append(labels.modifyValue("name",n -> n+"_bucket").and("le", String.valueOf(quantile)).linearize("name"))
|
||||
// .append(labels.andTypes("quantile", String.valueOf(quantile)).linearize("name"))
|
||||
.append(' ')
|
||||
.append(value)
|
||||
.append('\n');
|
||||
}
|
||||
buffer.append(labels.modifyValue("name",n->n+"_bucket").andTypes("le","+Inf").linearize("name"))
|
||||
buffer.append(labels.modifyValue("name",n->n+"_bucket").and("le","+Inf").linearize("name"))
|
||||
.append(' ')
|
||||
.append(snapshot.getMax())
|
||||
.append('\n');
|
||||
|
@ -32,24 +32,6 @@ public class MapLabelsTest {
|
||||
assertThat(result).isEqualTo("value_a_value_c");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInstances() {
|
||||
final MapLabels l1 = new MapLabels(Map.of("key_a", "value_a", "key_c", "value_c"),"key_c");
|
||||
NBLabels typesOnly = l1.onlyTypes();
|
||||
assertThat(typesOnly.linearizeValues()).isEqualTo("value_a");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInstanceCombination() {
|
||||
final MapLabels l1 = new MapLabels(Map.of("key_a", "value_a"),Map.of("key_c", "value_c"),"key_c");
|
||||
final MapLabels l2 = new MapLabels(Map.of("key_dog", "value_dog"),Map.of( "key_cat", "value_cat"),"key_dog");
|
||||
final MapLabels l3 = l1.and(l2);
|
||||
assertThat(l3.linearizeValues()).matches("value_a.value_c.value_dog.value_cat");
|
||||
|
||||
assertThat(l3.onlyTypes().linearizeValues()).matches("value_a.value_cat");
|
||||
assertThat(l3.onlyInstances().linearizeValues()).matches("value_c.value_dog");
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testInvalidCharacters() {
|
||||
|
Loading…
Reference in New Issue
Block a user