Move linking to frontend
SOF3 opened this issue · comments
Description
Instead of finding the trace as the linker, the aggregator just emits a tag that indicates the CGRNN of the parent span. Children are emitted with a separate trace ID so that each object has its own trace.
To be precise, we can remove the "parent"/"child" relationship in general and emit a new pseudospan type called "link":
tag name | tag value |
---|---|
zzz-traceSource |
"link" |
linkedCluster |
linked object cluster |
linkedGroup |
linked object group |
linkedResource |
linked object resource |
linkedNamespace |
linked object namespace |
linkedName |
linked object name |
linkedRole |
If "parent" , the current span is displayed as a child of the linked span. If empty, the linked span is displayed as a child of the current span. Otherwise, the linked span is displayed under a display-only virtual span with the specified role |
User story
Currently, frontend queries that use the exclusive
mode have to search the entire trace, making queries unnecessarily slow. Since the user may only be interested in a particular object, we can speed up the query by limiting each trace to one object only.
This allows us to use more aggressive linkers, which may become more significant with #109. Furthermore, dynamic linking means that we can now have multi-object links, such as linking pods to their secrets/nodes (this was previously not possible because nodes can relate to multiple pods).