Discussion:
Logging the execution time over multiple routes
Rajith Muditha Attapattu
2018-11-08 13:37:23 UTC
Permalink
We have the following scenario. The aggregate has a timeout.
Route1
JMS/REST ---> transform --> aggregate --> Queue.

Route2
Queue --> transform-to-xml ---> SAP.

We want to find out the total time it took to send a payload into SAP. The
start time should be when the first payload in the batch was received.
Using that we can calculate the total time as the last step on the second
route.

Is there a reliable way to propagate the start time of the payload across
the routes? I was thinking about using a header as it gets preserved over
JMS.

Any suggestions ?

Regards,

Rajith Muditha Attapattu <http://rajith.2rlabs.com/>
Claus Ibsen
2018-12-03 17:59:39 UTC
Permalink
Hi

Maybe in the custom AggregationStrategy which you can set on the
aggregator, you will have the data for the time of the 1st exchange,
and then you can store that on the exchange that gets built as the
output of the aggregator, and then you can add a step after SAP where
you then calculate the taken time.
On Thu, Nov 8, 2018 at 6:50 PM Rajith Muditha Attapattu
Post by Rajith Muditha Attapattu
We have the following scenario. The aggregate has a timeout.
Route1
JMS/REST ---> transform --> aggregate --> Queue.
Route2
Queue --> transform-to-xml ---> SAP.
We want to find out the total time it took to send a payload into SAP. The
start time should be when the first payload in the batch was received.
Using that we can calculate the total time as the last step on the second
route.
Is there a reliable way to propagate the start time of the payload across
the routes? I was thinking about using a header as it gets preserved over
JMS.
Any suggestions ?
Regards,
Rajith Muditha Attapattu <http://rajith.2rlabs.com/>
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
Continue reading on narkive:
Loading...