Skip to content

Commit b3f0cfe

Browse files
committed
rename instruments, rework tests
1 parent aa2f8aa commit b3f0cfe

File tree

2 files changed

+62
-67
lines changed

2 files changed

+62
-67
lines changed

instrumentation/failsafe-3.0/library/src/main/java/io/opentelemetry/instrumentation/failsafe/v3_0/CircuitBreakerEventListenerBuilders.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ static <R> EventListener<ExecutionCompletedEvent<R>> buildInstrumentedFailureLis
2020
CircuitBreakerConfig<R> userConfig, Meter meter, Attributes attributes) {
2121
LongCounter failureCounter =
2222
meter
23-
.counterBuilder("failsafe.circuitbreaker.failure.count")
23+
.counterBuilder("failsafe.circuit_breaker.failure.count")
2424
.setDescription("Count of failed circuit breaker executions.")
2525
.build();
2626
EventListener<ExecutionCompletedEvent<R>> failureListener = userConfig.getFailureListener();
@@ -36,7 +36,7 @@ static <R> EventListener<ExecutionCompletedEvent<R>> buildInstrumentedSuccessLis
3636
CircuitBreakerConfig<R> userConfig, Meter meter, Attributes attributes) {
3737
LongCounter successCounter =
3838
meter
39-
.counterBuilder("failsafe.circuitbreaker.success.count")
39+
.counterBuilder("failsafe.circuit_breaker.success.count")
4040
.setDescription("Count of successful circuit breaker executions.")
4141
.build();
4242
EventListener<ExecutionCompletedEvent<R>> successListener = userConfig.getSuccessListener();
@@ -52,7 +52,7 @@ static <R> EventListener<CircuitBreakerStateChangedEvent> buildInstrumentedOpenL
5252
CircuitBreakerConfig<R> userConfig, Meter meter, Attributes attributes) {
5353
LongCounter openCircuitBreakerCounter =
5454
meter
55-
.counterBuilder("failsafe.circuitbreaker.open.count")
55+
.counterBuilder("failsafe.circuit_breaker.open.count")
5656
.setDescription("Count of times that circuit breaker was opened.")
5757
.build();
5858
EventListener<CircuitBreakerStateChangedEvent> openListener = userConfig.getOpenListener();
@@ -66,7 +66,7 @@ static <R> EventListener<CircuitBreakerStateChangedEvent> buildInstrumentedHalfO
6666
CircuitBreakerConfig<R> userConfig, Meter meter, Attributes attributes) {
6767
LongCounter halfOpenCircuitBreakerCounter =
6868
meter
69-
.counterBuilder("failsafe.circuitbreaker.halfopen.count")
69+
.counterBuilder("failsafe.circuit_breaker.half_open.count")
7070
.setDescription("Count of times that circuit breaker was half-opened.")
7171
.build();
7272
EventListener<CircuitBreakerStateChangedEvent> halfOpenListener =
@@ -81,7 +81,7 @@ static <R> EventListener<CircuitBreakerStateChangedEvent> buildInstrumentedClose
8181
CircuitBreakerConfig<R> userConfig, Meter meter, Attributes attributes) {
8282
LongCounter closedCircuitBreakerCounter =
8383
meter
84-
.counterBuilder("failsafe.circuitbreaker.closed.count")
84+
.counterBuilder("failsafe.circuit_breaker.closed.count")
8585
.setDescription("Count of times that circuit breaker was closed.")
8686
.build();
8787
EventListener<CircuitBreakerStateChangedEvent> closeListener = userConfig.getCloseListener();

instrumentation/failsafe-3.0/library/src/test/java/io/opentelemetry/instrumentation/failsafe/v3_0/FailsafeTelemetryTest.java

Lines changed: 57 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -5,89 +5,84 @@
55

66
package io.opentelemetry.instrumentation.failsafe.v3_0;
77

8-
import static org.hamcrest.CoreMatchers.equalTo;
9-
import static org.hamcrest.MatcherAssert.assertThat;
10-
import static org.junit.jupiter.api.Assertions.assertTrue;
8+
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9+
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
10+
import static org.assertj.core.api.Assertions.assertThat;
1111

12+
import dev.failsafe.CircuitBreaker;
1213
import dev.failsafe.CircuitBreakerOpenException;
1314
import dev.failsafe.Failsafe;
14-
import io.opentelemetry.api.common.AttributeKey;
15-
import io.opentelemetry.api.common.Attributes;
1615
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
1716
import io.opentelemetry.instrumentation.testing.junit.LibraryInstrumentationExtension;
18-
import io.opentelemetry.sdk.metrics.data.LongPointData;
19-
import io.opentelemetry.sdk.metrics.data.MetricData;
2017
import io.opentelemetry.sdk.testing.assertj.MetricAssert;
2118
import java.time.Duration;
2219
import java.util.Objects;
23-
import org.junit.jupiter.api.Nested;
2420
import org.junit.jupiter.api.Test;
2521
import org.junit.jupiter.api.extension.RegisterExtension;
2622

2723
final class FailsafeTelemetryTest {
2824
@RegisterExtension
2925
static final InstrumentationExtension testing = LibraryInstrumentationExtension.create();
3026

31-
@Nested
32-
final class CircuitBreaker {
33-
@Test
34-
void should_Capture_CircuitBreaker_Metrics() {
35-
// given
36-
dev.failsafe.CircuitBreaker<Object> userCircuitBreaker =
37-
dev.failsafe.CircuitBreaker.builder()
38-
.handleResultIf(Objects::isNull)
39-
.withFailureThreshold(2)
40-
.withDelay(Duration.ZERO)
41-
.withSuccessThreshold(2)
42-
.build();
43-
FailsafeTelemetry failsafeTelemetry = FailsafeTelemetry.create(testing.getOpenTelemetry());
44-
dev.failsafe.CircuitBreaker<Object> instrumentedCircuitBreaker =
45-
failsafeTelemetry.createCircuitBreaker(userCircuitBreaker, "testing");
27+
@Test
28+
void captureCircuitBreakerMetrics() {
29+
// given
30+
CircuitBreaker<Object> userCircuitBreaker =
31+
dev.failsafe.CircuitBreaker.builder()
32+
.handleResultIf(Objects::isNull)
33+
.withFailureThreshold(2)
34+
.withDelay(Duration.ZERO)
35+
.withSuccessThreshold(2)
36+
.build();
37+
FailsafeTelemetry failsafeTelemetry = FailsafeTelemetry.create(testing.getOpenTelemetry());
38+
CircuitBreaker<Object> instrumentedCircuitBreaker =
39+
failsafeTelemetry.createCircuitBreaker(userCircuitBreaker, "testing");
4640

47-
// when
48-
for (int i = 0; i < 5; i++) {
49-
try {
50-
int temp = i;
51-
Failsafe.with(instrumentedCircuitBreaker)
52-
.get(
53-
() -> {
54-
if (temp < 2) {
55-
return null;
56-
} else {
57-
return new Object();
58-
}
59-
});
60-
} catch (CircuitBreakerOpenException e) {
61-
assertThat(i, equalTo(2));
62-
}
41+
// when
42+
for (int i = 0; i < 5; i++) {
43+
try {
44+
int temp = i;
45+
Failsafe.with(instrumentedCircuitBreaker)
46+
.get(
47+
() -> {
48+
if (temp < 2) {
49+
return null;
50+
} else {
51+
return new Object();
52+
}
53+
});
54+
} catch (CircuitBreakerOpenException e) {
55+
assertThat(i).isEqualTo(2);
6356
}
64-
65-
// then
66-
testing.waitAndAssertMetrics(
67-
"io.opentelemetry.failsafe-3.0",
68-
metricAssert ->
69-
assertCircuitBreakerMetric(metricAssert, "failsafe.circuitbreaker.failure.count", 2),
70-
metricAssert ->
71-
assertCircuitBreakerMetric(metricAssert, "failsafe.circuitbreaker.success.count", 3),
72-
metricAssert ->
73-
assertCircuitBreakerMetric(metricAssert, "failsafe.circuitbreaker.open.count", 1),
74-
metricAssert ->
75-
assertCircuitBreakerMetric(metricAssert, "failsafe.circuitbreaker.halfopen.count", 1),
76-
metricAssert ->
77-
assertCircuitBreakerMetric(metricAssert, "failsafe.circuitbreaker.closed.count", 1));
7857
}
58+
59+
// then
60+
testing.waitAndAssertMetrics(
61+
"io.opentelemetry.failsafe-3.0",
62+
metricAssert ->
63+
assertCircuitBreakerMetric(metricAssert, "failsafe.circuit_breaker.failure.count", 2),
64+
metricAssert ->
65+
assertCircuitBreakerMetric(metricAssert, "failsafe.circuit_breaker.success.count", 3),
66+
metricAssert ->
67+
assertCircuitBreakerMetric(metricAssert, "failsafe.circuit_breaker.open.count", 1),
68+
metricAssert ->
69+
assertCircuitBreakerMetric(metricAssert, "failsafe.circuit_breaker.half_open.count", 1),
70+
metricAssert ->
71+
assertCircuitBreakerMetric(metricAssert, "failsafe.circuit_breaker.closed.count", 1));
7972
}
8073

8174
private static void assertCircuitBreakerMetric(
8275
MetricAssert metricAssert, String counterName, long expectedValue) {
83-
MetricData closeCountData = metricAssert.actual();
84-
assertThat(closeCountData.getName(), equalTo(counterName));
85-
assertTrue(closeCountData.getData().getPoints().stream().findFirst().isPresent());
86-
LongPointData closeCountLongPointData =
87-
(LongPointData) closeCountData.getData().getPoints().stream().findFirst().get();
88-
assertThat(
89-
closeCountLongPointData.getAttributes(),
90-
equalTo(Attributes.of(AttributeKey.stringKey("name"), "testing")));
91-
assertThat(closeCountLongPointData.getValue(), equalTo(expectedValue));
76+
metricAssert
77+
.hasName(counterName)
78+
.hasLongSumSatisfying(
79+
sum ->
80+
sum.isMonotonic()
81+
.hasPointsSatisfying(
82+
point ->
83+
point
84+
.hasValue(expectedValue)
85+
.hasAttributesSatisfyingExactly(
86+
equalTo(stringKey("name"), "testing"))));
9287
}
9388
}

0 commit comments

Comments
 (0)