-
Notifications
You must be signed in to change notification settings - Fork 114
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: add span.id to transactions, rename parent.id #413
Comments
So
It is not clear to me why
Is there no need for retrieving the same local sub-tree or are you saying that could be done differently with the proposal? Have you thought about what should happen to the |
I don't know what you mean by refer up/down. The core of the proposal above is essentially to copy
Fair point. The reason I said
I'm not sure if or where it's needed -- see my question in the description. In the UI we filter the tree client-side AFAIK.
Good point. If we do rename |
Thanks for clarifying. I completely mis-interpreted that. The |
For log correlation, it can be useful to just inject the But I guess we could remove |
IIANM, you could switch the Java agent's log correlation code to inject But I don't think we necessarily need to take For Elastic agents, we can continue to add For log correlation in OpenTelemetry, the best we could do is correlate logs with a specific span. If we wanted to show all associated local sub-tree spans we would need to query the trace and reconstruct the graph, like in the APM app. I think this is a good reason to keep |
It might be confusing to correlate a log with a
👍 |
elastic/ecs#998 highlights some issues with the fields we use in APM. In particular:
parent.id
is unclear from its nameFor Elastic APM agents, spans always have an associated
transaction.id
. This is not the case when translating OpenTelemetry data to Elastic APM, as OpenTelemetry does not have a concept of "entry-point spans". As a result, not all spans have an associatedtransaction.id
, and if OpenTelemetry data is to be a first-class citizen in Elastic APM, the UI cannot make any assumptions abouttransaction.id
being present in spans.We already consider and treat transactions as a special sort of span (entry-point spans). Transactions and spans share a significant amount of overlap: trace IDs, timestamp, duration, outcome. I propose a minor change to our data model, moving towards unifying transactions and spans:
span.id
to transaction documents. As an implementation detail, this could just be an alias totransaction.id
.parent.id
tospan.parent_id
; this now always refers to aspan.id
, nevertransaction.id
.transaction.id
is used only for identifying spans that are part of the same local sub-tree. This field becomes optional.Thus in terms of IDs, transactions are effectively spans. There are still other important differences that we would later need to change if we want to completely unify transactions and spans, such as
transaction.type
,transaction.name
, etc.Question: what remaining benefits are there to including
transaction.id
in span documents, or in transaction documents for that matter?The text was updated successfully, but these errors were encountered: