Search in sources :

Example 1 with Db

use of co.elastic.apm.impl.transaction.Db in project apm-agent-java by elastic.

the class ApmJdbcEventListenerTest method testJdbcSpan.

@Test
void testJdbcSpan() throws SQLException {
    PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM ELASTIC_APM WHERE FOO=$1");
    preparedStatement.setInt(1, 1);
    ResultSet resultSet = preparedStatement.executeQuery();
    assertThat(resultSet.next()).isTrue();
    assertThat(resultSet.getInt("foo")).isEqualTo(1);
    assertThat(resultSet.getString("BAR")).isEqualTo("APM");
    assertThat(transaction.getSpans()).hasSize(1);
    Span jdbcSpan = transaction.getSpans().get(0);
    assertThat(jdbcSpan.getName()).isEqualTo("SELECT");
    assertThat(jdbcSpan.getType()).isEqualToIgnoringCase("db.h2.sql");
    Db db = jdbcSpan.getContext().getDb();
    assertThat(db.getStatement()).isEqualTo("SELECT * FROM ELASTIC_APM WHERE FOO=$1");
    assertThat(db.getUser()).isEqualToIgnoringCase("user");
    assertThat(db.getType()).isEqualToIgnoringCase("sql");
}
Also used : ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement) Span(co.elastic.apm.impl.transaction.Span) Db(co.elastic.apm.impl.transaction.Db) Test(org.junit.jupiter.api.Test)

Aggregations

Db (co.elastic.apm.impl.transaction.Db)1 Span (co.elastic.apm.impl.transaction.Span)1 PreparedStatement (java.sql.PreparedStatement)1 ResultSet (java.sql.ResultSet)1 Test (org.junit.jupiter.api.Test)1