Skip to content

Commit b88d2e5

Browse files
committed
Assert JDBC exception log records
1 parent 76f01f7 commit b88d2e5

1 file changed

Lines changed: 14 additions & 28 deletions

File tree

instrumentation/jdbc/testing/src/main/java/io/opentelemetry/instrumentation/jdbc/testing/AbstractJdbcInstrumentationTest.java

Lines changed: 14 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,11 @@
1616
import static io.opentelemetry.instrumentation.testing.util.TestLatestDeps.testLatestDeps;
1717
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.assertThat;
1818
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
19-
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
2019
import static io.opentelemetry.semconv.DbAttributes.DB_NAMESPACE;
2120
import static io.opentelemetry.semconv.DbAttributes.DB_OPERATION_BATCH_SIZE;
2221
import static io.opentelemetry.semconv.DbAttributes.DB_QUERY_SUMMARY;
2322
import static io.opentelemetry.semconv.DbAttributes.DB_STORED_PROCEDURE_NAME;
2423
import static io.opentelemetry.semconv.DbAttributes.DB_SYSTEM_NAME;
25-
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_MESSAGE;
26-
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_STACKTRACE;
27-
import static io.opentelemetry.semconv.ExceptionAttributes.EXCEPTION_TYPE;
2824
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
2925
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_CONNECTION_STRING;
3026
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_NAME;
@@ -36,7 +32,6 @@
3632
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DbSystemNameIncubatingValues.HSQLDB;
3733
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DbSystemNameIncubatingValues.OTHER_SQL;
3834
import static java.util.Arrays.asList;
39-
import static java.util.stream.Collectors.toList;
4035
import static org.assertj.core.api.Assertions.assertThat;
4136
import static org.assertj.core.api.Assertions.assertThatThrownBy;
4237
import static org.assertj.core.api.Assertions.catchThrowable;
@@ -52,7 +47,6 @@
5247
import io.opentelemetry.instrumentation.jdbc.TestDriver;
5348
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
5449
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
55-
import io.opentelemetry.sdk.logs.data.LogRecordData;
5650
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
5751
import io.opentelemetry.sdk.testing.assertj.SpanDataAssert;
5852
import io.opentelemetry.sdk.testing.assertj.TraceAssert;
@@ -78,7 +72,6 @@
7872
import org.apache.derby.jdbc.EmbeddedDataSource;
7973
import org.apache.derby.jdbc.EmbeddedDriver;
8074
import org.assertj.core.api.ThrowingConsumer;
81-
import org.awaitility.Awaitility;
8275
import org.h2.jdbcx.JdbcDataSource;
8376
import org.hsqldb.jdbc.JDBCDriver;
8477
import org.junit.jupiter.api.BeforeAll;
@@ -459,30 +452,23 @@ void testFailedStatement() throws SQLException {
459452
.hasException(emitExceptionAsSpanEvents() ? error : null)));
460453

461454
if (emitExceptionAsLogs()) {
462-
assertExceptionLog();
455+
testing()
456+
.waitAndAssertLogRecords(
457+
logRecord ->
458+
logRecord
459+
.hasSeverity(Severity.WARN)
460+
.hasEventName("db.client.operation.exception")
461+
.hasException(error)
462+
.hasTotalAttributeCount(3),
463+
logRecord ->
464+
logRecord
465+
.hasSeverity(Severity.WARN)
466+
.hasEventName("exception")
467+
.hasException(error)
468+
.hasTotalAttributeCount(3));
463469
}
464470
}
465471

466-
private void assertExceptionLog() {
467-
Awaitility.await()
468-
.untilAsserted(
469-
() -> {
470-
List<LogRecordData> logs =
471-
testing().logRecords().stream()
472-
.filter(log -> "db.client.operation.exception".equals(log.getEventName()))
473-
.collect(toList());
474-
475-
assertThat(logs).hasSize(1);
476-
assertThat(logs.get(0))
477-
.hasSeverity(Severity.WARN)
478-
.hasEventName("db.client.operation.exception")
479-
.hasAttributesSatisfyingExactly(
480-
satisfies(EXCEPTION_TYPE, val -> val.isNotNull()),
481-
satisfies(EXCEPTION_MESSAGE, val -> val.isNotNull()),
482-
satisfies(EXCEPTION_STACKTRACE, val -> val.isNotNull()));
483-
});
484-
}
485-
486472
static Stream<Arguments> preparedStatementStream() throws SQLException {
487473
return Stream.of(
488474
Arguments.of(

0 commit comments

Comments
 (0)