private static void SetUp() { FacadePipe myPipe = new FacadePipe(myConfig.Station[0]); myMaster = new FacadeApplicationLayerMaster(); myFacadeISegmentStatistics = new FacadeISegmentStatistics(); SegmentTiming(); myMachine = new SegmentStateMachine(myMaster, parameters, false, myFacadeISegmentStatistics, myTimeList); myMachine.ResetCounter(); myMachine.DisconnectedAfterFailureEntered += new EventHandler(myMachine_DisconnectedAfterFailureEntered); FacadeSegment myFacadeSegment = new FacadeSegment(); int myMaxNumberOfTags = int.MaxValue; Statistics.ChannelStatistics myChanel = new Statistics.ChannelStatistics(myConfig.Channels[0]); DiagnosticSegment mySegment = new DiagnosticSegment(myConfig.Segments[0], myChanel); myInterface = (new FacadeSegment.FacadePipeInterface(new InterfaceParameters(myConfig.Interfaces[0]), myPipe, mySegment)); myInterface.ResetCounter(); FacadeSegment.FacadeDataDescription myDataDescription = new FacadeSegment.FacadeDataDescription(myConfig.DataBlocks[0], ref myMaxNumberOfTags); myDataDescription.ResetCounter(); myPipeDataBlock = new FacadeSegment.FacadePipeInterface.FacadePipeDataBlock(myFacadeSegment, myDataDescription, myInterface); myPipeDataBlock.ResetCounter(); }
public void TestSubsegment() { _recorder.BeginSubsegment("subsegment1"); Subsegment subsegment1 = (Subsegment)TraceContext.GetEntity(); FacadeSegment facadeSegment = (FacadeSegment)subsegment1.RootSegment; _recorder.EndSubsegment(); Assert.AreEqual(facadeSegment.GetType(), typeof(FacadeSegment)); Assert.IsFalse(facadeSegment.Subsegments.Contains(subsegment1)); //only subsegment is streamed Assert.IsFalse(TraceContext.IsEntityPresent()); // facade segment is cleared from TraceContext }
public void TestNestedSubsegments() { _recorder.BeginSubsegment("subsegment1"); Subsegment child = (Subsegment)TraceContext.GetEntity(); FacadeSegment facadeSegment = (FacadeSegment)child.RootSegment; _recorder.BeginSubsegment("subsegment2"); Assert.AreEqual("subsegment2", TraceContext.GetEntity().Name); Assert.AreEqual(facadeSegment.TraceId, TraceContext.GetEntity().RootSegment.TraceId); //root segment of subsegment2 is facade segment _recorder.EndSubsegment(); _recorder.EndSubsegment(); Assert.AreEqual(facadeSegment.GetType(), typeof(FacadeSegment)); Assert.IsFalse(facadeSegment.Subsegments.Contains(child)); //only subsegments are streamed Assert.IsFalse(TraceContext.IsEntityPresent()); }
public void TestLambdaLeakedSubsegments() { String secondTraceHeader = "Root=" + Core.Internal.Entities.TraceId.NewId() + ";Parent=53995c3f42cd8ad1;Sampled=1"; _recorder.BeginSubsegment("subsegment1"); Subsegment subsegment1 = (Subsegment)TraceContext.GetEntity(); Environment.SetEnvironmentVariable(AWSXRayRecorder.LambdaTraceHeaderKey, secondTraceHeader); _recorder.BeginSubsegment("subsegment2"); //Environment variables changed, subsegment1 will be dropped Subsegment subsegment2 = (Subsegment)TraceContext.GetEntity(); FacadeSegment facadeSegment = (FacadeSegment)subsegment2.RootSegment; Assert.IsFalse(facadeSegment.Subsegments.Contains(subsegment1)); //subsegment1 dropped Assert.IsTrue(facadeSegment.Subsegments.Contains(subsegment2)); //only subsegment2 is present _recorder.EndSubsegment(); //subsegment2 streamed Assert.IsFalse(TraceContext.IsEntityPresent()); // Facade segment not present in the callcontext }
public void TestNotSampledNestedSubsegments() { String notSampledTraceHeader = "Root=" + Core.Internal.Entities.TraceId.NewId() + ";Parent=53995c3f42cd8ad1;Sampled=0"; //not sampled Environment.SetEnvironmentVariable(AWSXRayRecorder.LambdaTraceHeaderKey, notSampledTraceHeader); _recorder.BeginSubsegment("subsegment1"); _recorder.BeginSubsegment("subsegment2"); Subsegment subsegment2 = (Subsegment)TraceContext.GetEntity(); //even if facade segment not sampled, subsegment tree is still available _recorder.EndSubsegment(); Subsegment subsegment1 = (Subsegment)TraceContext.GetEntity(); Assert.AreEqual("subsegment1", TraceContext.GetEntity().Name); FacadeSegment facadeSegment = (FacadeSegment)subsegment1.RootSegment; Assert.IsFalse(facadeSegment.Subsegments.Contains(subsegment2)); //subsegment1 dropped Assert.IsTrue(facadeSegment.Subsegments.Contains(subsegment1)); _recorder.EndSubsegment(); Assert.IsFalse(TraceContext.IsEntityPresent()); }
public void Initialize() { _facadeSegment = new FacadeSegment("Facade", TraceId, ParentId); }