Search in sources :

Example 31 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class SqlSubsegmentsTest method testCreateSubsegmentWhenConnectionThrowsException.

@Test
void testCreateSubsegmentWhenConnectionThrowsException() throws SQLException {
    when(connection.getMetaData()).thenThrow(new SQLException());
    Subsegment sub = SqlSubsegments.forQuery(connection, SQL);
    assertThat(AWSXRay.getCurrentSubsegment()).isEqualTo(sub);
    assertThat(sub.getName()).isEqualTo(SqlSubsegments.DEFAULT_DATABASE_NAME);
    assertThat(sub.isInProgress()).isTrue();
    assertThat(sub.getParentSegment().getSubsegments()).contains(sub);
}
Also used : SQLException(java.sql.SQLException) Subsegment(com.amazonaws.xray.entities.Subsegment) Test(org.junit.jupiter.api.Test)

Example 32 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class SqlSubsegmentsTest method testCreateSubsegmentWithSql.

@Test
void testCreateSubsegmentWithSql() {
    expectedSqlParams = new HashMap<>();
    expectedSqlParams.put("url", URL);
    expectedSqlParams.put("user", USER);
    expectedSqlParams.put("driver_version", DRIVER_VERSION);
    expectedSqlParams.put("database_type", DB_TYPE);
    expectedSqlParams.put("database_version", DB_VERSION);
    expectedSqlParams.put("sanitized_query", SQL);
    Subsegment sub = SqlSubsegments.forQuery(connection, SQL);
    assertThat(sub.getName()).isEqualTo(CATALOG + "@" + HOST);
    assertThat(sub.getNamespace()).isEqualTo(Namespace.REMOTE.toString());
    assertThat(sub.getSql()).containsAllEntriesOf(expectedSqlParams);
}
Also used : Subsegment(com.amazonaws.xray.entities.Subsegment) Test(org.junit.jupiter.api.Test)

Example 33 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class SqlSubsegmentsTest method testDbNameIsNotNull.

@Test
void testDbNameIsNotNull() throws SQLException {
    when(connection.getCatalog()).thenReturn(null);
    Subsegment sub = SqlSubsegments.forQuery(connection, SQL);
    assertThat(sub.getName()).isEqualTo(SqlSubsegments.DEFAULT_DATABASE_NAME + "@" + HOST);
}
Also used : Subsegment(com.amazonaws.xray.entities.Subsegment) Test(org.junit.jupiter.api.Test)

Example 34 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class SLF4JSegmentListenerTest method testSubsegmentInjection.

@Test
public void testSubsegmentInjection() {
    SLF4JSegmentListener listener = (SLF4JSegmentListener) AWSXRay.getGlobalRecorder().getSegmentListeners().get(0);
    listener.setPrefix("");
    Segment seg = new SegmentImpl(AWSXRay.getGlobalRecorder(), "test", traceID);
    listener.onSetEntity(null, seg);
    Subsegment sub = new SubsegmentImpl(AWSXRay.getGlobalRecorder(), "test", seg);
    listener.onSetEntity(seg, sub);
    Assert.assertEquals(traceID.toString() + "@" + sub.getId(), MDC.get(TRACE_ID_KEY));
}
Also used : SubsegmentImpl(com.amazonaws.xray.entities.SubsegmentImpl) SegmentImpl(com.amazonaws.xray.entities.SegmentImpl) Subsegment(com.amazonaws.xray.entities.Subsegment) Segment(com.amazonaws.xray.entities.Segment) Test(org.junit.Test)

Example 35 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class BaseAbstractXRayInterceptor method processXRayTrace.

protected Object processXRayTrace(ProceedingJoinPoint pjp) throws Throwable {
    try {
        Subsegment subsegment = AWSXRay.beginSubsegment(pjp.getSignature().getName());
        if (subsegment != null) {
            subsegment.setMetadata(generateMetadata(pjp, subsegment));
        }
        return XRayInterceptorUtils.conditionalProceed(pjp);
    } catch (Exception e) {
        AWSXRay.getCurrentSegmentOptional().ifPresent(x -> x.addException(e));
        throw e;
    } finally {
        logger.trace("Ending Subsegment");
        AWSXRay.endSubsegment();
    }
}
Also used : AWSXRay(com.amazonaws.xray.AWSXRay) Map(java.util.Map) Subsegment(com.amazonaws.xray.entities.Subsegment) Log(org.apache.commons.logging.Log) LogFactory(org.apache.commons.logging.LogFactory) Pointcut(org.aspectj.lang.annotation.Pointcut) ProceedingJoinPoint(org.aspectj.lang.ProceedingJoinPoint) Around(org.aspectj.lang.annotation.Around) Subsegment(com.amazonaws.xray.entities.Subsegment)

Aggregations

Subsegment (com.amazonaws.xray.entities.Subsegment)81 Test (org.junit.Test)35 Segment (com.amazonaws.xray.entities.Segment)31 SubsegmentImpl (com.amazonaws.xray.entities.SubsegmentImpl)14 Test (org.junit.jupiter.api.Test)13 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)13 FacadeSegment (com.amazonaws.xray.entities.FacadeSegment)10 SegmentImpl (com.amazonaws.xray.entities.SegmentImpl)10 TraceID (com.amazonaws.xray.entities.TraceID)10 Map (java.util.Map)10 Entity (com.amazonaws.xray.entities.Entity)9 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)9 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)7 Cause (com.amazonaws.xray.entities.Cause)6 TraceHeader (com.amazonaws.xray.entities.TraceHeader)5 SdkHttpClient (software.amazon.awssdk.http.SdkHttpClient)5 Emitter (com.amazonaws.xray.emitters.Emitter)4 SegmentListener (com.amazonaws.xray.listeners.SegmentListener)4 SdkAsyncHttpClient (software.amazon.awssdk.http.async.SdkAsyncHttpClient)4 LambdaAsyncClient (software.amazon.awssdk.services.lambda.LambdaAsyncClient)4