Skip to content
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

Support for transaction parentIds in Elastic Rum agent #1520

Open
pedrogranja opened this issue Jul 26, 2024 · 1 comment
Open

Support for transaction parentIds in Elastic Rum agent #1520

pedrogranja opened this issue Jul 26, 2024 · 1 comment

Comments

@pedrogranja
Copy link

In the context of a web extension, we are using the Elastic RUM agent. We created an agent in both the "FE" of the web extension and in the service worker of the web extension and we would now like to relate the transaction from both processes.

In order to do this, I'm passing the parent id and trace id of the span that I wish to correlate my new transaction with in the service worker. in more concrete details, I'm doing the following:

chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
...
transaction.parentId = message.parentId;
transaction.traceId = message.traceId;
...
}

This didn't work out of the box, and I found that it was due to the truncation happening in the performance-monitoring.js file discarding the parent ids, causing them to not be passed onto the APM Server.
To allow for my scenario I added, the parentId mapping, in the file, as such:

id: transaction.id,
trace_id: transaction.traceId,
session: transaction.session,
name: transaction.name,
type: transaction.type,
duration: transaction.duration(),
spans: spans,
context: transaction.context,
marks: transaction.marks,
breakdown: transaction.breakdownTimings,
span_count: {
  started: spans.length
},
sampled: transaction.sampled,
sample_rate: transaction.sampleRate,
experience: transaction.experience,
outcome: transaction.outcome,
**parent_id: transaction.parentId** <- added this line

From your support, I see that there was a discussion around this subject in this issue: #1267 and at the time, you didn't consider this change due to a lack of use cases. I believe that my use case is valid and from my experience it is possible to use your agent in the service workers using some polyfills. Could this change be considered now?

Thank you!

@pedrogranja
Copy link
Author

Any idea on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant