in sdk/src/Core/AWSXRayRecorder.netcore.cs [345:374]
private void ProcessEndSubsegmentInLambdaContext(DateTime? timestamp = null)
{
var subsegment = PrepEndSubsegmentInLambdaContext();
if (timestamp == null)
{
subsegment.SetEndTimeToNow();
}
else
{
subsegment.SetEndTime(timestamp.Value);
}
// Check emittable
if (subsegment.IsEmittable())
{
// Emit
Emitter.Send(subsegment.RootSegment);
}
else if (StreamingStrategy.ShouldStream(subsegment))
{
StreamingStrategy.Stream(subsegment.RootSegment, Emitter);
}
if (TraceContext.IsEntityPresent() && TraceContext.GetEntity().GetType() == typeof(FacadeSegment)) //implies FacadeSegment in the Trace Context
{
EndFacadeSegment();
return;
}
}