While going about testing our RUM implementation, we have come across a scenario where we are interested in correlating all transactions that belong to the same instance (or browser tab) so that we can discern if there would be significant differences in the performance of the same transactions on different tabs for the same user. For this to happen we are wondering if there is some sort of unique ID for each instance of the page on the same session. We have looked at the different ephemeral IDs but those don't seem to apply. New Transaction IDs are generated on each new transaction. Seems like the same with Trace ID. We also don't think that using Spans would be the right thing to use here either.
To illustrate, suppose we have a customer relations management web page. A user can open two or more instances of the page on the same session to attend to multiple clients. On each page are a number of functions such as "update profile" or "add new notes" which we would like to instrument using RUM. Our interest is that each "add new note" is a transaction with its own transaction ID. However, we wanted all "add notes" on that instance of the page to share some sort of correlation ID, which will differ from the correlation ID from the other tab despite it being on the same exact page.
Granted, we can generate our own instance ID each the the page is loaded (and persisted for its lifespan) and add it as a label for all transactions. However, we are hoping that the RUM agent already has something along this line. Any advice? Thanks!
Thanks for your well articulated message. I'm curious to understand more about the use case.
What do you consider a "session" ?
It sounds like you have a suspicion that there are instances of pages that are more problematic than other instances. If that's the case, I'm curious to understand what makes the different instances different? And which difference do you expect could contribute to the performance of each instance? I'm asking because it would perhaps be better to add labels to the transactions that identify these differences instead of producing a new random correlation id.
To answer the first question, we define session as all instances of a user on the same browser space for a given site, which covers all tabs except for private ones.
To simplify, a user logs on to our CRM, goes tot he customer management page and duplicate sit. Those all belong to the same session. If he opens the same site on a private version of the same browser, that will be treated as a different session as he'll need to log in separately.
Our use case has to do with correlating all transactions on the same tab so that we can track if performances across different tabs of the same page will have significant differences.
As I mentioned, we can modify our app to produce a unique instance ID per tab and add that value to all transactions as a label, but that means having to do the exercise on all our applications.
I was just hoping that maybe there was an existing ID that I may have missed or was not documented.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.