Search in sources :

Example 46 with Subsegment

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

the class SqlSubsegmentsTest method testPrefersMetaDataFromUrl.

@Test
void testPrefersMetaDataFromUrl() {
    WeakConcurrentMap<Connection, ConnectionInfo> map = new WeakConcurrentMap.WithInlinedExpunction<>();
    map.put(connection, new ConnectionInfo.Builder().sanitizedUrl("jdbc:oracle:rds.us-west-2.com").user("another").dbName("newDb").host("rds.us-west-2.com").build());
    SqlSubsegments.setConnMap(map);
    Subsegment sub = SqlSubsegments.forQuery(connection, SQL);
    assertThat(sub.getName()).isEqualTo("newDb@rds.us-west-2.com");
    assertThat(sub.getSql()).containsEntry("url", "jdbc:oracle:rds.us-west-2.com");
    assertThat(sub.getSql()).containsEntry("user", "another");
}
Also used : Connection(java.sql.Connection) Subsegment(com.amazonaws.xray.entities.Subsegment) Test(org.junit.jupiter.api.Test)

Example 47 with Subsegment

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

the class SqlSubsegmentsTest method testHostIsNotNull.

@Test
void testHostIsNotNull() throws SQLException {
    when(metaData.getURL()).thenReturn("some invalid URL");
    Subsegment sub = SqlSubsegments.forQuery(connection, SQL);
    assertThat(sub.getName()).isEqualTo(CATALOG);
}
Also used : Subsegment(com.amazonaws.xray.entities.Subsegment) Test(org.junit.jupiter.api.Test)

Example 48 with Subsegment

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

the class SLF4JSegmentListenerTest method testNestedSubsegmentInjection.

@Test
public void testNestedSubsegmentInjection() {
    SLF4JSegmentListener listener = (SLF4JSegmentListener) AWSXRay.getGlobalRecorder().getSegmentListeners().get(0);
    listener.setPrefix("");
    Segment seg = new SegmentImpl(AWSXRay.getGlobalRecorder(), "test", traceID);
    listener.onSetEntity(null, seg);
    Subsegment sub1 = new SubsegmentImpl(AWSXRay.getGlobalRecorder(), "test1", seg);
    listener.onSetEntity(seg, sub1);
    Subsegment sub2 = new SubsegmentImpl(AWSXRay.getGlobalRecorder(), "test2", seg);
    listener.onSetEntity(sub1, sub2);
    Assert.assertEquals(traceID.toString() + "@" + sub2.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 49 with Subsegment

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

the class XRaySpringDataInterceptor method traceSQL.

@Around("queryExecution()")
public Object traceSQL(ProceedingJoinPoint pjp) throws Throwable {
    try {
        Subsegment subsegment = AWSXRay.beginSubsegment(pjp.getSignature().getName());
        XRayInterceptorUtils.generateMetadata(pjp, subsegment);
        return XRayInterceptorUtils.conditionalProceed(pjp);
    } catch (Exception e) {
        logger.error(e.getMessage());
        AWSXRay.getCurrentSegment().addException(e);
        throw e;
    } finally {
        logger.trace("Ending Subsegment");
        AWSXRay.endSubsegment();
    }
}
Also used : Subsegment(com.amazonaws.xray.entities.Subsegment) Around(org.aspectj.lang.annotation.Around)

Example 50 with Subsegment

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

the class TracedResponseHandlerTest method testHandleResponse200SetsNoFlags.

@Test
void testHandleResponse200SetsNoFlags() {
    Segment segment = segmentInResponseToCode(200);
    Subsegment subsegment = segment.getSubsegments().get(0);
    Assertions.assertFalse(subsegment.isFault());
    Assertions.assertFalse(subsegment.isError());
    Assertions.assertFalse(subsegment.isThrottle());
}
Also used : Subsegment(com.amazonaws.xray.entities.Subsegment) Segment(com.amazonaws.xray.entities.Segment) Test(org.junit.jupiter.api.Test)

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