State: IMPLEMENTED
When promoting apps to other instances, an end user would like to see the whole flow across the stages in a single trace. This KEP proposes the usage of the W3C trace-id to create links between traces across stages.
Currently, the Keptn Lifecycle Toolkit (Controller) starts a new trace whenever a new version/revision of a KeptnAppVersion is created and there is no way to pass over a TraceId to an Application. As a result, the Trace ends when an application is deployed and there is no Link to the next stage.
This KEP proposes to add a new field to the KeptnApp CRD called traceLinks
. This field is optional and can be used to pass over a list of TraceIDs to the KeptnApp. The main use case for this field is to pass over the TraceId of the previous stage to the next stage when promoting an application and therefore keep an end to end view of the whole flow.
Therefore:
- If the
traceLinks
field is not set in the KeptnApp, Keptn (Controller) will create a new trace without links to other traces. - if the
traceLinks
field is set in the KeptnApp, Keptn (Controller) will create a new trace and create a link to each of the traces provided intraceLinks
.
Using this mechanism, a link between traces across stages can be created and therefore an end to end view of the whole flow can be achieved. This enables users to trace the whole flow of an application across stages.