Search in sources :

Example 1 with SQL

use of org.apache.ignite.spi.tracing.Scope.SQL in project ignite by apache.

the class OpenCensusSqlJdbcTracingTest method testSelectLocal.

/**
 * Tests tracing of local SQL SELECT query.
 *
 * @throws Exception If failed.
 */
@Test
public void testSelectLocal() throws Exception {
    String orgTable = createTableAndPopulate(Organization.class, REPLICATED, 1);
    SpanId rootSpan = executeAndCheckRootSpan("SELECT orgVal FROM " + orgTable, TEST_SCHEMA, false, false, true);
    String qryId = getAttribute(rootSpan, SQL_QRY_ID);
    assertTrue(Long.parseLong(qryId.substring(qryId.indexOf('_') + 1)) > 0);
    UUID.fromString(qryId.substring(0, qryId.indexOf('_')));
    checkChildSpan(SQL_QRY_PARSE, rootSpan);
    checkChildSpan(SQL_CURSOR_OPEN, rootSpan);
    checkChildSpan(SQL_ITER_OPEN, rootSpan);
    SpanId iterSpan = checkChildSpan(SQL_ITER_OPEN, rootSpan);
    checkChildSpan(SQL_QRY_EXECUTE, iterSpan);
    int fetchedRows = findChildSpans(SQL_PAGE_FETCH, rootSpan).stream().mapToInt(span -> Integer.parseInt(getAttribute(span, SQL_PAGE_ROWS))).sum();
    assertEquals(TEST_TABLE_POPULATION, fetchedRows);
    checkChildSpan(SQL_ITER_CLOSE, rootSpan);
    assertFalse(findChildSpans(SQL_CURSOR_CLOSE, rootSpan).isEmpty());
}
Also used : Connection(java.sql.Connection) SQL_PAGE_ROWS(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_PAGE_ROWS) SQL_QRY_ID(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_QRY_ID) SQL_CMD_QRY_EXECUTE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CMD_QRY_EXECUTE) IgniteEx(org.apache.ignite.internal.IgniteEx) SQLException(java.sql.SQLException) Config(org.apache.ignite.client.Config) ResultSet(java.sql.ResultSet) DriverManager.getConnection(java.sql.DriverManager.getConnection) SpanId(io.opencensus.trace.SpanId) SAMPLING_RATE_NEVER(org.apache.ignite.spi.tracing.TracingConfigurationParameters.SAMPLING_RATE_NEVER) PARTITIONED(org.apache.ignite.cache.CacheMode.PARTITIONED) TracingConfigurationCoordinates(org.apache.ignite.spi.tracing.TracingConfigurationCoordinates) SQL_ITER_OPEN(org.apache.ignite.internal.processors.tracing.SpanType.SQL_ITER_OPEN) SQL_BATCH_PROCESS(org.apache.ignite.internal.processors.tracing.SpanType.SQL_BATCH_PROCESS) SQL_CURSOR_CLOSE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CURSOR_CLOSE) SQL_ITER_CLOSE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_ITER_CLOSE) Test(org.junit.Test) SQL_PAGE_FETCH(org.apache.ignite.internal.processors.tracing.SpanType.SQL_PAGE_FETCH) UUID(java.util.UUID) PreparedStatement(java.sql.PreparedStatement) SQL_QRY(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY) REPLICATED(org.apache.ignite.cache.CacheMode.REPLICATED) Objects(java.util.Objects) List(java.util.List) DFLT_SCHEMA(org.apache.ignite.internal.processors.query.QueryUtils.DFLT_SCHEMA) SAMPLING_RATE_ALWAYS(org.apache.ignite.spi.tracing.TracingConfigurationParameters.SAMPLING_RATE_ALWAYS) TracingConfigurationParameters(org.apache.ignite.spi.tracing.TracingConfigurationParameters) SQL_CURSOR_OPEN(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CURSOR_OPEN) SQL_QRY_PARSE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY_PARSE) SQL(org.apache.ignite.spi.tracing.Scope.SQL) SQL_QRY_EXECUTE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY_EXECUTE) IgniteUtils.resolveIgnitePath(org.apache.ignite.internal.util.IgniteUtils.resolveIgnitePath) SpanId(io.opencensus.trace.SpanId) Test(org.junit.Test)

Example 2 with SQL

use of org.apache.ignite.spi.tracing.Scope.SQL in project ignite by apache.

the class OpenCensusSqlNativeTracingTest method checkDmlQuerySpans.

/**
 * Executes DML query and checks corresponding span tree.
 *
 * @param qry SQL query to execute.
 * @param fetchRequired Whether query need to fetch data before cache update.
 */
private void checkDmlQuerySpans(String qry, boolean fetchRequired, int expCacheUpdates) throws Exception {
    SpanId rootSpan = executeAndCheckRootSpan(qry, TEST_SCHEMA, false, false, false);
    checkChildSpan(SQL_QRY_PARSE, rootSpan);
    SpanId dmlExecSpan = checkChildSpan(SQL_DML_QRY_EXECUTE, rootSpan);
    if (fetchRequired) {
        checkChildSpan(SQL_ITER_OPEN, dmlExecSpan);
        int fetchedRows = findChildSpans(SQL_PAGE_FETCH, null).stream().mapToInt(span -> parseInt(getAttribute(span, SQL_PAGE_ROWS))).sum();
        assertEquals(expCacheUpdates, fetchedRows);
    }
    int cacheUpdates = findChildSpans(SQL_CACHE_UPDATE, dmlExecSpan).stream().mapToInt(span -> parseInt(getAttribute(span, SQL_CACHE_UPDATES))).sum();
    assertEquals(expCacheUpdates, cacheUpdates);
}
Also used : IgniteInternalFuture(org.apache.ignite.internal.IgniteInternalFuture) SQL_DML_QRY_RESP(org.apache.ignite.internal.processors.tracing.SpanType.SQL_DML_QRY_RESP) SQL_NEXT_PAGE_REQ(org.apache.ignite.internal.processors.tracing.SpanType.SQL_NEXT_PAGE_REQ) TestRecordingCommunicationSpi.spi(org.apache.ignite.internal.TestRecordingCommunicationSpi.spi) Arrays(java.util.Arrays) SQL_IDX_RANGE_ROWS(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_IDX_RANGE_ROWS) SpanType(org.apache.ignite.internal.processors.tracing.SpanType) SQL_PAGE_ROWS(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_PAGE_ROWS) SqlFieldsQuery(org.apache.ignite.cache.query.SqlFieldsQuery) SQL_QRY_ID(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_QRY_ID) SQL_CMD_QRY_EXECUTE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CMD_QRY_EXECUTE) IgniteEx(org.apache.ignite.internal.IgniteEx) SQL_FAIL_RESP(org.apache.ignite.internal.processors.tracing.SpanType.SQL_FAIL_RESP) GridTestUtils.runAsync(org.apache.ignite.testframework.GridTestUtils.runAsync) NoopSpan(org.apache.ignite.internal.processors.tracing.NoopSpan) Matcher(java.util.regex.Matcher) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) SQL_PAGE_WAIT(org.apache.ignite.internal.processors.tracing.SpanType.SQL_PAGE_WAIT) SpanId(io.opencensus.trace.SpanId) PARTITIONED(org.apache.ignite.cache.CacheMode.PARTITIONED) NODE(org.apache.ignite.internal.processors.tracing.SpanTags.NODE) Tracing(io.opencensus.trace.Tracing) TracingConfigurationCoordinates(org.apache.ignite.spi.tracing.TracingConfigurationCoordinates) QuerySqlField(org.apache.ignite.cache.query.annotations.QuerySqlField) ImmutableMap(com.google.common.collect.ImmutableMap) IgniteCheckedException(org.apache.ignite.IgniteCheckedException) Set(java.util.Set) SQL_IDX_RANGE_RESP(org.apache.ignite.internal.processors.tracing.SpanType.SQL_IDX_RANGE_RESP) SQL_ITER_CLOSE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_ITER_CLOSE) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) IgniteCache(org.apache.ignite.IgniteCache) GridTestUtils(org.apache.ignite.testframework.GridTestUtils) List(java.util.List) IgniteConfiguration(org.apache.ignite.configuration.IgniteConfiguration) DFLT_SCHEMA(org.apache.ignite.internal.processors.query.QueryUtils.DFLT_SCHEMA) SQL_CURSOR_CANCEL(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CURSOR_CANCEL) SAMPLING_RATE_ALWAYS(org.apache.ignite.spi.tracing.TracingConfigurationParameters.SAMPLING_RATE_ALWAYS) MTC(org.apache.ignite.internal.processors.tracing.MTC) TracingSpi(org.apache.ignite.spi.tracing.TracingSpi) SQL_IDX_RANGE_REQ(org.apache.ignite.internal.processors.tracing.SpanType.SQL_IDX_RANGE_REQ) SQL_CURSOR_OPEN(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CURSOR_OPEN) SQL(org.apache.ignite.spi.tracing.Scope.SQL) Pattern(java.util.regex.Pattern) TestRecordingCommunicationSpi(org.apache.ignite.internal.TestRecordingCommunicationSpi) GridQueryNextPageRequest(org.apache.ignite.internal.processors.query.h2.twostep.messages.GridQueryNextPageRequest) SQL_QRY_EXEC_REQ(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY_EXEC_REQ) FieldsQueryCursor(org.apache.ignite.cache.query.FieldsQueryCursor) SQL_CACHE_UPDATE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CACHE_UPDATE) SQL_SCHEMA(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_SCHEMA) U(org.apache.ignite.internal.util.typedef.internal.U) SQL_PARTITIONS_RESERVE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_PARTITIONS_RESERVE) SQL_QRY_CANCEL_REQ(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY_CANCEL_REQ) SQL_DML_QRY_EXECUTE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_DML_QRY_EXECUTE) OpenCensusTracingSpi(org.apache.ignite.spi.tracing.opencensus.OpenCensusTracingSpi) SQL_PAGE_RESP(org.apache.ignite.internal.processors.tracing.SpanType.SQL_PAGE_RESP) SQL_QRY_TEXT(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_QRY_TEXT) SQL_CACHE_UPDATES(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_CACHE_UPDATES) SpanTags.tag(org.apache.ignite.internal.processors.tracing.SpanTags.tag) SQL_ITER_OPEN(org.apache.ignite.internal.processors.tracing.SpanType.SQL_ITER_OPEN) Iterator(java.util.Iterator) Pattern.compile(java.util.regex.Pattern.compile) SQL_CURSOR_CLOSE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_CURSOR_CLOSE) SqlFieldsQueryEx(org.apache.ignite.internal.processors.cache.query.SqlFieldsQueryEx) Test(org.junit.Test) SQL_PAGE_FETCH(org.apache.ignite.internal.processors.tracing.SpanType.SQL_PAGE_FETCH) Ignite(org.apache.ignite.Ignite) SQL_PARSER_CACHE_HIT(org.apache.ignite.internal.processors.tracing.SpanTags.SQL_PARSER_CACHE_HIT) SQL_DML_QRY_EXEC_REQ(org.apache.ignite.internal.processors.tracing.SpanType.SQL_DML_QRY_EXEC_REQ) NAME(org.apache.ignite.internal.processors.tracing.SpanTags.NAME) Integer.parseInt(java.lang.Integer.parseInt) SQL_QRY(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY) SQL_PAGE_PREPARE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_PAGE_PREPARE) CONSISTENT_ID(org.apache.ignite.internal.processors.tracing.SpanTags.CONSISTENT_ID) NODE_ID(org.apache.ignite.internal.processors.tracing.SpanTags.NODE_ID) Ignition(org.apache.ignite.Ignition) Boolean.parseBoolean(java.lang.Boolean.parseBoolean) CacheConfiguration(org.apache.ignite.configuration.CacheConfiguration) TracingConfigurationParameters(org.apache.ignite.spi.tracing.TracingConfigurationParameters) SQL_QRY_PARSE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY_PARSE) SQL_QRY_EXECUTE(org.apache.ignite.internal.processors.tracing.SpanType.SQL_QRY_EXECUTE) CacheMode(org.apache.ignite.cache.CacheMode) SpanId(io.opencensus.trace.SpanId)

Aggregations

SpanId (io.opencensus.trace.SpanId)2 List (java.util.List)2 UUID (java.util.UUID)2 PARTITIONED (org.apache.ignite.cache.CacheMode.PARTITIONED)2 IgniteEx (org.apache.ignite.internal.IgniteEx)2 DFLT_SCHEMA (org.apache.ignite.internal.processors.query.QueryUtils.DFLT_SCHEMA)2 ImmutableMap (com.google.common.collect.ImmutableMap)1 Tracing (io.opencensus.trace.Tracing)1 Boolean.parseBoolean (java.lang.Boolean.parseBoolean)1 Integer.parseInt (java.lang.Integer.parseInt)1 Connection (java.sql.Connection)1 DriverManager.getConnection (java.sql.DriverManager.getConnection)1 PreparedStatement (java.sql.PreparedStatement)1 ResultSet (java.sql.ResultSet)1 SQLException (java.sql.SQLException)1 Arrays (java.util.Arrays)1 Iterator (java.util.Iterator)1 Objects (java.util.Objects)1 Set (java.util.Set)1 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)1