File tree Expand file tree Collapse file tree
aws-xray-recorder-sdk-core/src
main/java/com/amazonaws/xray
test/java/com/amazonaws/xray Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1818import com .amazonaws .xray .contexts .SegmentContextResolverChain ;
1919import com .amazonaws .xray .emitters .Emitter ;
2020import com .amazonaws .xray .entities .AWSLogReference ;
21+ import com .amazonaws .xray .entities .StringValidator ;
2122import com .amazonaws .xray .listeners .SegmentListener ;
2223import com .amazonaws .xray .plugins .EC2Plugin ;
2324import com .amazonaws .xray .plugins .ECSPlugin ;
@@ -50,6 +51,7 @@ public class AWSXRayRecorderBuilder {
5051 LogFactory .getLog (AWSXRayRecorderBuilder .class );
5152
5253 private static final Map <String , Integer > ORIGIN_PRIORITY ;
54+ private static final String LOG_GROUP_KEY = "AWS_LOG_GROUP" ;
5355
5456 static {
5557 HashMap <String , Integer > originPriority = new HashMap <>();
@@ -351,6 +353,16 @@ public AWSXRayRecorder build() {
351353 }
352354 });
353355
356+ String logGroupFromEnv = System .getenv (LOG_GROUP_KEY );
357+ if (StringValidator .isNotNullOrBlank (logGroupFromEnv )) {
358+ logger .info ("Recording log group " + logGroupFromEnv + " from environment variable." );
359+ AWSLogReference logReference = new AWSLogReference ();
360+ logReference .setLogGroup (logGroupFromEnv );
361+ Set <AWSLogReference > logReferences = new HashSet <>();
362+ logReferences .add (logReference );
363+ client .addAllLogReferences (logReferences );
364+ }
365+
354366 return client ;
355367 }
356368}
Original file line number Diff line number Diff line change 2424import com .amazonaws .xray .contexts .LambdaSegmentContextResolver ;
2525import com .amazonaws .xray .contexts .SegmentContextResolverChain ;
2626import com .amazonaws .xray .emitters .Emitter ;
27+ import com .amazonaws .xray .entities .AWSLogReference ;
2728import com .amazonaws .xray .entities .Segment ;
2829import com .amazonaws .xray .entities .Subsegment ;
2930import com .amazonaws .xray .entities .TraceHeader ;
5152import java .util .HashSet ;
5253import java .util .List ;
5354import java .util .Map ;
55+ import java .util .Set ;
5456import java .util .concurrent .ExecutorService ;
5557import java .util .concurrent .Executors ;
5658import java .util .concurrent .locks .ReentrantLock ;
@@ -917,6 +919,18 @@ public void testBeginSegmentWithForcedSampling() {
917919
918920 segment .setUser ("user" );
919921 assertThat (segment .getUser ()).isEqualTo ("user" ); // Loose way to test that segment is real
922+ }
923+
924+ @ Test
925+ public void testLogGroupFromEnvironment () {
926+ environmentVariables .set ("AWS_LOG_GROUP" , "my-group" );
927+ AWSXRayRecorder recorder = AWSXRayRecorderBuilder .standard ().build ();
928+ Segment segment = recorder .beginSegment ("test" );
929+ AWSLogReference expected = new AWSLogReference ();
930+ expected .setLogGroup ("my-group" );
920931
932+ assertThat (segment .getAws ()).containsKey ("cloudwatch_logs" );
933+ Set <AWSLogReference > logReferences = (Set <AWSLogReference >) segment .getAws ().get ("cloudwatch_logs" );
934+ assertThat (logReferences ).containsOnly (expected );
921935 }
922936}
You can’t perform that action at this time.
0 commit comments