Tuesday, September 2, 2025

#1083 Monitoring asynchronous integration flows

Introduction

Monitoring asynchronous flows is easy with OIC Observability.
Let's look at this, based on the following simple example, 

async-processOrder is a dummy integration that does nothing more than wait a certain amount of seconds, before completing. The request payload field - waitInSecs - controls how long we wait.



I've ran 11 flows with different values for waitInSecs - let's get an overview.

Note the default view, highlighting min, max, std. deviation and mean - 

I can un-check/check as required -

Note also the support for percentiles - 

I can also see the flow count breakdown over time - 


Now let's do a load test - starting point -

I run a load test from SOAP-UI - and see the async queue building up


Test completes, but still requests queued -

Let's look at the figures above -

  • Received is 1967
  • Processed is 1773
  • Succeeded is 1773
That means 194 flows are either in progress or queued. 

I check my async concurrency limit in the OIC Observability Dashboard - 

As you can see, I have a limit of 50. This can, of course, be increased by adding more message packs to this instance.

So from the 194 "open" flows, I can safely say that at least 144 are still queued.

I run a couple of more load tests and review the graph again - 

Note the max execution time here of ca 48 seconds - for the load test, the async integration has been invoked with the following payload - 

All the integration does is execute the Wait action, this load test had the request field waitInSecs set to 30. So we can say that this flow was in the queue for ca. 18 seconds, before being popped.
Earlier tests had a lower value for this field, thus the variation in the graph.

Naturally your integrations will contain orchestration logic along with invokes of services etc., so such statements won't be possible for you. 

But I hope you get the idea. 

 

Now to the final widget on the page - 

I've highlighted an icon on the left -

This can be dragged to decrease/increase the time interval - e.g. default view is for 1 day and I want to focus in on a particular part of that day. 




Summa Summarum

This is a great feature, somewhat hidden, but do make use of it.