Apdex stands for "Application Performance Index" and has for long been a standard in APM (Application Performance Monitoring) to report on "health" of applications and their performance. It is an open standard and its purpose is to give insight about user satisfaction or end user experience.
The main parameter for calculating Apdex is response times. Response time calculation can span multiple applications, and just presenting the individual response time values does not necessarily tell you if users regard a system highly responsive or not. Also a response time considered good in one application or setting might reflect poor performance or bad user experience in another.
So the goal with Apdex is to convert many measurements into a single number on a uniform scale from 0 to 1. "0" means that no users are satisfied and on the opposite side of the scale you have "1" which means that all users are satisfied. I will skip the calculations in this article but if you are interested you can read more here https://en.wikipedia.org/wiki/Apdex
So, for monitoring purposes it simplifies a lot on reporting or as a dashboard component. Just by checking the Apdex parameter one can easily see how your systems are operating and if users are happy with the processing. In most cases you will see Apdex used in web monitoring where users access a frontend.
In AIMS we wanted to translate the Apdex value over to integrations. One main difference compared to the original Apdex is that enterprise integrations are very often not end user oriented. But enterprise integrations are in many cases business critical and have high demands on performance. In short all your integrations have different processing requirements, some within seconds while others can use minutes or hours. Again, there is not a single number that can be applied to all integrations to tell if an integration is working as it should.
So, this is how we applied Apdex to integration monitoring in AIMS:
- AIMS has always-on performance monitoring of all components in your BizTalk environment. AIMS constantly extracts peformance data like message count, latency and volume for all orchestrations and ports.
- Based on latency per component, AIMS build normal behavior patterns of latency for all orchestrations,ports and locations. This means that AIMS knows exactly what the latency should be at any given time for all the components. Again, these patterns are called "normal behavior patterns" and are built using machine learning and statistical algorithms.
- Since AIMS knows what "normal behavior" of latency is at any given time, anomalies in latency can easily be detected.
- So in short; the less latency deviations the BizTalk has, the higher the Apdex value is. And the more latency devations the BizTalk has, the lower the Apdex value becomes. So a low Apdex value will in short tell you that your integrations are "unhealthy".
This is not the complete computation but gives you enough insight to understand how we applied Apdex to integrations. It is a one-stop number that gives you a good indication on how your integrations are processing.