Search in sources :

Example 16 with Emitter

use of com.amazonaws.xray.emitters.Emitter in project aws-xray-sdk-java by aws.

the class AWSXRayRecorderTest method testSubsegmentEmittedInLambdaContext.

@Test
public void testSubsegmentEmittedInLambdaContext() throws JSONException {
    TraceHeader header = TraceHeader.fromString(TRACE_HEADER);
    PowerMockito.stub(PowerMockito.method(LambdaSegmentContext.class, "getTraceHeaderFromEnvironment")).toReturn(header);
    PowerMockito.stub(PowerMockito.method(LambdaSegmentContextResolver.class, "getLambdaTaskRoot")).toReturn("/var/task");
    Emitter mockEmitter = Mockito.mock(Emitter.class);
    AWSXRayRecorder recorder = AWSXRayRecorderBuilder.standard().withEmitter(mockEmitter).build();
    recorder.createSubsegment("test", () -> {
    });
    ArgumentCaptor<Subsegment> emittedSubsegment = ArgumentCaptor.forClass(Subsegment.class);
    Mockito.verify(mockEmitter, Mockito.times(1)).sendSubsegment(emittedSubsegment.capture());
    Subsegment captured = emittedSubsegment.getValue();
    JSONAssert.assertEquals(expectedLambdaSubsegment(header.getRootTraceId(), header.getParentId(), captured.getId(), captured.getStartTime(), captured.getEndTime()).toString(), captured.streamSerialize(), JSONCompareMode.NON_EXTENSIBLE);
}
Also used : TraceHeader(com.amazonaws.xray.entities.TraceHeader) Emitter(com.amazonaws.xray.emitters.Emitter) Subsegment(com.amazonaws.xray.entities.Subsegment) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 17 with Emitter

use of com.amazonaws.xray.emitters.Emitter in project aws-xray-sdk-java by aws.

the class AWSXRayRecorderTest method setupAWSXRay.

@Before
public void setupAWSXRay() {
    MockitoAnnotations.initMocks(this);
    Emitter blankEmitter = Mockito.mock(Emitter.class);
    LocalizedSamplingStrategy defaultSamplingStrategy = new LocalizedSamplingStrategy();
    Mockito.doReturn(true).when(blankEmitter).sendSegment(Mockito.anyObject());
    Mockito.doReturn(true).when(blankEmitter).sendSubsegment(Mockito.anyObject());
    AWSXRay.setGlobalRecorder(AWSXRayRecorderBuilder.standard().withEmitter(blankEmitter).withSamplingStrategy(defaultSamplingStrategy).build());
    AWSXRay.clearTraceEntity();
}
Also used : Emitter(com.amazonaws.xray.emitters.Emitter) LocalizedSamplingStrategy(com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy) Before(org.junit.Before)

Example 18 with Emitter

use of com.amazonaws.xray.emitters.Emitter in project aws-xray-sdk-java by aws.

the class AWSXRayRecorderTest method testExplicitSubsegmentEmitted.

@Test
public void testExplicitSubsegmentEmitted() {
    Emitter mockEmitter = Mockito.mock(Emitter.class);
    AWSXRayRecorder recorder = AWSXRayRecorderBuilder.standard().withEmitter(mockEmitter).build();
    recorder.beginSegment("test");
    Subsegment subsegment = recorder.beginSubsegment("test");
    recorder.endSubsegment(subsegment);
    recorder.endSegment();
    Mockito.verify(mockEmitter, Mockito.times(1)).sendSegment(any());
}
Also used : Emitter(com.amazonaws.xray.emitters.Emitter) Subsegment(com.amazonaws.xray.entities.Subsegment) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 19 with Emitter

use of com.amazonaws.xray.emitters.Emitter in project aws-xray-sdk-java by aws.

the class AWSXRayRecorderTest method testDummySegmentNotEmitted.

@Test
public void testDummySegmentNotEmitted() {
    Emitter mockEmitter = Mockito.mock(Emitter.class);
    AWSXRayRecorder recorder = AWSXRayRecorderBuilder.standard().withEmitter(mockEmitter).build();
    recorder.beginDummySegment();
    recorder.beginSubsegment("test");
    recorder.endSubsegment();
    recorder.endSegment();
    Mockito.verify(mockEmitter, Mockito.times(0)).sendSegment(any());
}
Also used : Emitter(com.amazonaws.xray.emitters.Emitter) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 20 with Emitter

use of com.amazonaws.xray.emitters.Emitter in project aws-xray-sdk-java by aws.

the class SegmentListenerTest method setupAWSXRay.

@BeforeEach
void setupAWSXRay() {
    Emitter blankEmitter = Mockito.mock(Emitter.class);
    Mockito.doReturn(true).when(blankEmitter).sendSegment(Mockito.any());
    Mockito.doReturn(true).when(blankEmitter).sendSubsegment(Mockito.any());
    CustomSegmentListener segmentListener = new CustomSegmentListener();
    AWSXRay.setGlobalRecorder(AWSXRayRecorderBuilder.standard().withEmitter(blankEmitter).withSegmentListener(segmentListener).build());
    AWSXRay.clearTraceEntity();
}
Also used : Emitter(com.amazonaws.xray.emitters.Emitter) BeforeEach(org.junit.jupiter.api.BeforeEach)

Aggregations

Emitter (com.amazonaws.xray.emitters.Emitter)24 Test (org.junit.Test)8 BeforeEach (org.junit.jupiter.api.BeforeEach)8 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)8 LocalizedSamplingStrategy (com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy)7 Before (org.junit.Before)6 Subsegment (com.amazonaws.xray.entities.Subsegment)4 TraceHeader (com.amazonaws.xray.entities.TraceHeader)3 SegmentContextResolverChain (com.amazonaws.xray.contexts.SegmentContextResolverChain)1 AWSLogReference (com.amazonaws.xray.entities.AWSLogReference)1 Segment (com.amazonaws.xray.entities.Segment)1 StringValidator (com.amazonaws.xray.entities.StringValidator)1 SegmentListener (com.amazonaws.xray.listeners.SegmentListener)1 EC2Plugin (com.amazonaws.xray.plugins.EC2Plugin)1 ECSPlugin (com.amazonaws.xray.plugins.ECSPlugin)1 EKSPlugin (com.amazonaws.xray.plugins.EKSPlugin)1 ElasticBeanstalkPlugin (com.amazonaws.xray.plugins.ElasticBeanstalkPlugin)1 Plugin (com.amazonaws.xray.plugins.Plugin)1 ContextMissingStrategy (com.amazonaws.xray.strategy.ContextMissingStrategy)1 IgnoreErrorContextMissingStrategy (com.amazonaws.xray.strategy.IgnoreErrorContextMissingStrategy)1