Skip to content

Commit 67d5bbb

Browse files
committed
Simplify Kafka exception log assertion
1 parent e5b30b8 commit 67d5bbb

1 file changed

Lines changed: 17 additions & 39 deletions

File tree

  • instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/test/java/io/opentelemetry/instrumentation/kafkaclients/v2_6

instrumentation/kafka/kafka-clients/kafka-clients-2.6/library/src/test/java/io/opentelemetry/instrumentation/kafkaclients/v2_6/WrapperTest.java

Lines changed: 17 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@
1212
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
1313
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1414
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
15-
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_MESSAGE;
16-
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_STACKTRACE;
17-
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_TYPE;
1815
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_BATCH_MESSAGE_COUNT;
1916
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_DESTINATION_NAME;
2017
import static io.opentelemetry.semconv.incubating.MessagingIncubatingAttributes.MESSAGING_DESTINATION_PARTITION_ID;
@@ -26,7 +23,6 @@
2623
import static java.nio.charset.StandardCharsets.UTF_8;
2724
import static java.util.Arrays.asList;
2825
import static java.util.Collections.singletonList;
29-
import static java.util.stream.Collectors.toList;
3026
import static org.assertj.core.api.Assertions.assertThat;
3127
import static org.assertj.core.api.Assertions.assertThatThrownBy;
3228
import static org.mockito.Mockito.mock;
@@ -36,7 +32,6 @@
3632
import io.opentelemetry.api.trace.SpanContext;
3733
import io.opentelemetry.api.trace.SpanKind;
3834
import io.opentelemetry.instrumentation.testing.junit.message.MessageHeaderUtil;
39-
import io.opentelemetry.sdk.logs.data.LogRecordData;
4035
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
4136
import io.opentelemetry.sdk.trace.data.LinkData;
4237
import io.opentelemetry.sdk.trace.data.StatusData;
@@ -47,7 +42,6 @@
4742
import org.apache.kafka.clients.consumer.Consumer;
4843
import org.assertj.core.api.AbstractLongAssert;
4944
import org.assertj.core.api.AbstractStringAssert;
50-
import org.awaitility.Awaitility;
5145
import org.junit.jupiter.api.Test;
5246

5347
@SuppressWarnings("deprecation") // using deprecated semconv
@@ -187,41 +181,25 @@ void testConsumerError() {
187181
testing.waitAndAssertTraces(
188182
trace ->
189183
trace.hasSpansSatisfyingExactly(
190-
span -> {
191-
span.hasName("unknown receive")
192-
.hasKind(SpanKind.CONSUMER)
193-
.hasNoParent()
194-
.hasStatus(StatusData.error())
195-
.hasAttributesSatisfyingExactly(
196-
equalTo(MESSAGING_SYSTEM, "kafka"),
197-
equalTo(MESSAGING_OPERATION, "receive"),
198-
equalTo(MESSAGING_BATCH_MESSAGE_COUNT, 0));
199-
if (emitExceptionAsSpanEvents()) {
200-
span.hasException(error);
201-
}
202-
}));
184+
span ->
185+
span.hasName("unknown receive")
186+
.hasKind(SpanKind.CONSUMER)
187+
.hasNoParent()
188+
.hasStatus(StatusData.error())
189+
.hasException(emitExceptionAsSpanEvents() ? error : null)
190+
.hasAttributesSatisfyingExactly(
191+
equalTo(MESSAGING_SYSTEM, "kafka"),
192+
equalTo(MESSAGING_OPERATION, "receive"),
193+
equalTo(MESSAGING_BATCH_MESSAGE_COUNT, 0))));
203194

204195
if (emitExceptionAsLogs()) {
205-
Awaitility.await()
206-
.untilAsserted(
207-
() -> {
208-
List<LogRecordData> logs =
209-
testing.logRecords().stream()
210-
.filter(log -> "messaging.receive.exception".equals(log.getEventName()))
211-
.collect(toList());
212-
assertThat(logs).hasSize(1);
213-
assertThat(logs.get(0))
214-
.hasSeverity(Severity.WARN)
215-
.hasEventName("messaging.receive.exception")
216-
.hasAttributesSatisfyingExactly(
217-
equalTo(EXCEPTION_TYPE, error.getClass().getName()),
218-
equalTo(EXCEPTION_MESSAGE, error.getMessage()),
219-
satisfies(
220-
EXCEPTION_STACKTRACE,
221-
val ->
222-
val.contains(error.getClass().getName())
223-
.contains("WrapperTest.testConsumerError")));
224-
});
196+
testing.waitAndAssertLogRecords(
197+
logRecord ->
198+
logRecord
199+
.hasSeverity(Severity.WARN)
200+
.hasEventName("messaging.receive.exception")
201+
.hasException(error)
202+
.hasTotalAttributeCount(3));
225203
}
226204
}
227205
}

0 commit comments

Comments
 (0)