Tuesday, October 14, 2025

#1089 - Monitoring concurrent async requests being processed by OIC

Introduction

I covered monitoring concurrent sync requests is a previous post. You can check it out here.
Similar for async is still work in progress, but you could use the monitoring api to get some intel.

Here is my project with an async integration - 

This does nothing, except wait for 60 seconds.

I execute this 5 times and then run the following integration - 

Let's try both out - firstly, I run the asyncTest integration 5 times, with a ca. 1 second gap between invokes. I then run the scheduled integration which will tell me how many concurrent async requests I have processing.
Here is the scheduled integration -


This scheduled integration has 2 parameters - 

This allows me to specify the time window for checking async concurrency.

This is the factory api invoke I will use -
https://design.integration.us-phoenix-1.ocp.oraclecloud.com/ic/api/integration/v1/monitoring/instances?integrationInstance=yourOICInstance&q={startdate:'2025-10-14+13:00:00',enddate:'2025-10-14+14:00:00'}

I set the q value in the ASSIGN Action and also initialise a counter -


The configuration of the invoke is easy. I've already tried out the api in Postman, so I can just copy what I need from there.

Async flows can be identified by -
"flowType": "ASYNC_ONE_WAY",

I also need the status - 
"status": "FAILED",

Valid values are for status are -
  • FAILED
  • ABORTED
  • COMPLETED
  • IN_PROGRESS
  • RECEIVED
So I am not interested in FAILED, ABORTED and COMPLETED.

The SWITCH action is configured to ignore these and just increment the counter, for the other 2 states.

Summa Summarum


 There are a couple of caveats here - it is a point in time view of received/in-flight async requests. This is dependent on the parameter values you set. Data will be inaccurate, if the time window is too large. Also, one needs to take into account the time taken to execute the scheduled integration itself. Finally, because of large data volumes, you may only want to check the concurrency for certain async integrations. This is easy, as the factory api lets you query on project/integration.  

Net, net - despite the caveats, this may be useful for some folks. 







  



No comments:

Post a Comment