| Valid options | continue, restart, restart_external |
| Default | continue |
| Dynamic | true |
| Central config | true |
The traceparent header of requests that are traced with our agents might have been added by a 3rd party component.
This situation becomes more and more common as the w3c trace context gets adopted. In such cases we can end up with traces where part of the trace is outside of our system.
In order to handle this properly, the agent SHOULD offer several trace continuation strategies.
The agent SHOULD offer a configuration called trace_continuation_strategy with the following values and behavior:
continue: The agent takes thetraceparentheader as it is and applies it to the new transaction.restart: The agent always creates a new trace with a new trace id. In this case the agent MUST create a span link in the new transaction pointing to the original traceparent.restart_external: The agent first checks thetracestateheader. If the header contains theesvendor flag, it's treated as internal, otherwise (including the case when thetracestateheader is not present) it's treated as external. In case of external calls the agent MUST create a new trace with a new trace id and MUST create a link in the new transaction pointing to the original trace.
In the case of internal calls, the agent MUST use the continue strategy above.