Skip to content

Commit 6009db4

Browse files
committed
Use hasValueSatisfying in metric assertions
Depends on SDK 1.62.0 (open-telemetry/opentelemetry-java#TBD) which adds LongPointAssert#hasValueSatisfying and DoublePointAssert#hasValueSatisfying. Converted: - oshi AbstractProcessMetricsTest: drops raw AssertJ on getPoints() in favor of the typed fluent chain. - runtime-telemetry BufferMetricTest: replaces point.satisfies(pointData -> ... assertThat(pointData.getValue())...) blocks with the typed hasValueSatisfying + hasAttributes.
1 parent fe4688b commit 6009db4

2 files changed

Lines changed: 31 additions & 24 deletions

File tree

instrumentation/oshi/testing/src/main/java/io/opentelemetry/instrumentation/oshi/AbstractProcessMetricsTest.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,17 @@
66
package io.opentelemetry.instrumentation.oshi;
77

88
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
9+
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
910

11+
import io.opentelemetry.api.common.AttributeKey;
1012
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1113
import org.junit.jupiter.api.Test;
1214
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
1315

1416
public abstract class AbstractProcessMetricsTest {
1517

18+
private static final AttributeKey<String> TYPE = AttributeKey.stringKey("type");
19+
1620
protected abstract void registerMetrics();
1721

1822
protected abstract InstrumentationExtension testing();
@@ -33,12 +37,17 @@ void test() {
3337
metric ->
3438
assertThat(metric)
3539
.hasUnit("By")
36-
// TODO: Provide fuzzy value matching
3740
.hasLongSumSatisfying(
3841
sum ->
39-
assertThat(metric.getLongSumData().getPoints())
40-
.anySatisfy(
41-
point -> assertThat(point.getValue()).isPositive()))));
42+
sum.hasPointsSatisfying(
43+
point ->
44+
point
45+
.hasAttributesSatisfying(equalTo(TYPE, "rss"))
46+
.hasValueSatisfying(v -> v.isPositive()),
47+
point ->
48+
point
49+
.hasAttributesSatisfying(equalTo(TYPE, "vms"))
50+
.hasValueSatisfying(v -> v.isPositive())))));
4251
testing()
4352
.waitAndAssertMetrics(
4453
"io.opentelemetry.oshi",
@@ -48,11 +57,16 @@ void test() {
4857
metric ->
4958
assertThat(metric)
5059
.hasUnit("ms")
51-
// TODO: Provide fuzzy value matching
5260
.hasLongGaugeSatisfying(
5361
gauge ->
54-
assertThat(metric.getLongGaugeData().getPoints())
55-
.anySatisfy(
56-
point -> assertThat(point.getValue()).isPositive()))));
62+
gauge.hasPointsSatisfying(
63+
point ->
64+
point
65+
.hasAttributesSatisfying(equalTo(TYPE, "user"))
66+
.hasValueSatisfying(v -> v.isNotNegative()),
67+
point ->
68+
point
69+
.hasAttributesSatisfying(equalTo(TYPE, "system"))
70+
.hasValueSatisfying(v -> v.isNotNegative())))));
5771
}
5872
}

instrumentation/runtime-telemetry/library/src/testJava17/java/io/opentelemetry/instrumentation/runtimetelemetry/BufferMetricTest.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import static io.opentelemetry.instrumentation.runtimetelemetry.internal.Constants.BYTES;
99
import static io.opentelemetry.instrumentation.runtimetelemetry.internal.Constants.UNIT_BUFFERS;
1010
import static java.nio.charset.StandardCharsets.UTF_8;
11-
import static org.assertj.core.api.Assertions.assertThat;
1211

1312
import io.opentelemetry.api.common.AttributeKey;
1413
import io.opentelemetry.api.common.Attributes;
@@ -55,11 +54,9 @@ void shouldHaveJfrLoadedClassesCountEvents() {
5554
sum ->
5655
sum.hasPointsSatisfying(
5756
point ->
58-
point.satisfies(
59-
pointData -> {
60-
assertThat(pointData.getValue()).isGreaterThan(0);
61-
assertThat(pointData.getAttributes()).isEqualTo(directBuffer);
62-
}))),
57+
point
58+
.hasAttributes(directBuffer)
59+
.hasValueSatisfying(v -> v.isPositive()))),
6360
metric ->
6461
metric
6562
.hasName("jvm.buffer.memory.limit")
@@ -69,11 +66,9 @@ void shouldHaveJfrLoadedClassesCountEvents() {
6966
sum ->
7067
sum.hasPointsSatisfying(
7168
point ->
72-
point.satisfies(
73-
pointData -> {
74-
assertThat(pointData.getValue()).isGreaterThan(0);
75-
assertThat(pointData.getAttributes()).isEqualTo(directBuffer);
76-
}))),
69+
point
70+
.hasAttributes(directBuffer)
71+
.hasValueSatisfying(v -> v.isPositive()))),
7772
metric ->
7873
metric
7974
.hasName("jvm.buffer.memory.used")
@@ -83,10 +78,8 @@ void shouldHaveJfrLoadedClassesCountEvents() {
8378
sum ->
8479
sum.hasPointsSatisfying(
8580
point ->
86-
point.satisfies(
87-
pointData -> {
88-
assertThat(pointData.getValue()).isGreaterThan(0);
89-
assertThat(pointData.getAttributes()).isEqualTo(directBuffer);
90-
}))));
81+
point
82+
.hasAttributes(directBuffer)
83+
.hasValueSatisfying(v -> v.isPositive()))));
9184
}
9285
}

0 commit comments

Comments
 (0)