Skip to content

Commit

Permalink
provide an API method to return an empty LabelSet (#716)
Browse files Browse the repository at this point in the history
* provide an API method for an empty LabelSet

* remove the TestLabelSet now that we have a way to create an empty one
  • Loading branch information
jkwatson authored and bogdandrutu committed Dec 18, 2019
1 parent 95da446 commit a8d14d8
Show file tree
Hide file tree
Showing 11 changed files with 32 additions and 35 deletions.
5 changes: 5 additions & 0 deletions api/src/main/java/io/opentelemetry/metrics/DefaultMeter.java
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,11 @@ public LabelSet createLabelSet(
return NoopLabelSet.INSTANCE;
}

@Override
public LabelSet emptyLabelSet() {
return NoopLabelSet.INSTANCE;
}

/** No-op implementation of LongGauge interface. */
@Immutable
private static final class NoopLongGauge implements LongGauge {
Expand Down
8 changes: 8 additions & 0 deletions api/src/main/java/io/opentelemetry/metrics/Meter.java
Original file line number Diff line number Diff line change
Expand Up @@ -278,4 +278,12 @@ public interface Meter {
*/
LabelSet createLabelSet(
String k1, String v1, String k2, String v2, String k3, String v3, String k4, String v4);

/**
* Returns an empty {@link LabelSet}. The implementation is permitted to have this be a singleton
* instance.
*
* @return an empty {@link LabelSet}
*/
LabelSet emptyLabelSet();
}
6 changes: 6 additions & 0 deletions api/src/test/java/io/opentelemetry/OpenTelemetryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -391,6 +391,12 @@ public LabelSet createLabelSet(
return null;
}

@Nullable
@Override
public LabelSet emptyLabelSet() {
return null;
}

@Override
public Meter get(String instrumentationName) {
return new FirstMeterFactory();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,6 @@ public void doesNotThrow() {
.setLabelKeys(LABEL_KEY)
.setUnit(UNIT)
.build();
doubleCounter.bind(TestLabelSet.empty()).add(1.0);
doubleCounter.bind(meter.emptyLabelSet()).add(1.0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,6 @@ public void doesNotThrow() {
.setLabelKeys(LABEL_KEY)
.setUnit(UNIT)
.build();
doubleGauge.bind(TestLabelSet.empty()).set(5.0);
doubleGauge.bind(meter.emptyLabelSet()).set(5.0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,12 @@ public void preventNegativeValue() {
DoubleMeasure myMeasure = meter.doubleMeasureBuilder("MyMeasure").build();
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage("Unsupported negative values");
myMeasure.bind(TestLabelSet.empty()).record(-5.0);
myMeasure.bind(meter.emptyLabelSet()).record(-5.0);
}

@Test
public void doesNotThrow() {
DoubleMeasure myMeasure = meter.doubleMeasureBuilder("MyMeasure").build();
myMeasure.bind(TestLabelSet.empty()).record(5.0);
myMeasure.bind(meter.emptyLabelSet()).record(5.0);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,6 @@ public void doesNotThrow() {
.setLabelKeys(LABEL_KEY)
.setUnit(UNIT)
.build();
longCounter.bind(TestLabelSet.empty()).add(1);
longCounter.bind(meter.emptyLabelSet()).add(1);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,6 @@ public void doesNotThrow() {
.setLabelKeys(LABEL_KEY)
.setUnit(UNIT)
.build();
longGauge.bind(TestLabelSet.empty()).set(5);
longGauge.bind(meter.emptyLabelSet()).set(5);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,12 @@ public void preventNegativeValue() {
LongMeasure myMeasure = meter.longMeasureBuilder("MyMeasure").build();
thrown.expect(IllegalArgumentException.class);
thrown.expectMessage("Unsupported negative values");
myMeasure.bind(TestLabelSet.empty()).record(-5);
myMeasure.bind(meter.emptyLabelSet()).record(-5);
}

@Test
public void doesNotThrow() {
LongMeasure myMeasure = meter.longMeasureBuilder("MyMeasure").build();
myMeasure.bind(TestLabelSet.empty()).record(5);
myMeasure.bind(meter.emptyLabelSet()).record(5);
}
}
27 changes: 0 additions & 27 deletions api/src/test/java/io/opentelemetry/metrics/TestLabelSet.java

This file was deleted.

5 changes: 5 additions & 0 deletions sdk/src/main/java/io/opentelemetry/sdk/metrics/MeterSdk.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,9 @@ public LabelSet createLabelSet(
String k1, String v1, String k2, String v2, String k3, String v3, String k4, String v4) {
throw new UnsupportedOperationException("to be implemented");
}

@Override
public LabelSet emptyLabelSet() {
throw new UnsupportedOperationException("to be implemented");
}
}

0 comments on commit a8d14d8

Please sign in to comment.