04 May 2022 03:06 PM - last edited on 05 May 2022 12:33 AM by MaciejNeumann
I am running a set of microservices that:
1. Initially ingest messages from an external queue (IBM MQ)
2. Processes/validates those messages in a series of exchanges between microservices and external queues.
OneAgent seems to provide us a good view of the end-to-end journey of a message. It does this by adding a trace ID to all of the services and requests that are part of the processing of that message.
We have interest in visualizing processing times for separate sub sections of the trace described above. Meaning, it would almost be preferred to regenerate a new trace ID at certain steps in the trace. There are obvious downsides to this, in that we are also interested in the aggregate processing time of all of the "legs" combined (which we are obviously currently able to do).
One way to think of this might be to look at the trace topology and identify areas (services/requests) that relate to specific logical business flows. If a trace involves 10 "steps", and steps 1-5 represent business flow "A" while steps 6-10 represent business flow "B", it would be nice if I could track metrics about those subsections.
1. Is it a common thing to want to deliberately "drop" a trace ID header at certain points of a workflow? If so, what is the typical approach?
2. Is this what backtraces aim to provide?
3. If I can indeed determine (from the "full" trace topology) where one business flow stops and another begins, what would the best way be to measure these "sub-sections" (assuming they don't conveniently share a single parent service)?
Hopefully this makes some sense... Happy to clarify if not.