in aws-xray-agent/src/main/java/com/amazonaws/xray/agent/runtime/handlers/XRayHandler.java [172:192]
protected TraceHeader buildTraceHeader(Entity entity) {
boolean isSampled;
TraceID traceID;
// Generate the trace header based on the segment itself.
if (entity instanceof Segment) {
Segment segment = (Segment) entity;
isSampled = segment.isSampled();
traceID = segment.getTraceId();
} else {
// Generate the trace header based on the parent of the subsegment.
Subsegment subsegment = (Subsegment) entity;
isSampled = subsegment.getParentSegment().isSampled();
traceID = subsegment.getParentSegment().getTraceId();
}
TraceHeader traceHeader = new TraceHeader(traceID,
isSampled ? entity.getId() : null,
isSampled ? TraceHeader.SampleDecision.SAMPLED : TraceHeader.SampleDecision.NOT_SAMPLED);
return traceHeader;
}