Method To Mine Application Usage Patterns
The concept of application transaction (also called business transaction or an end-user transaction) is at the heart of Application Performance Management.
Join the DZone community and get the full member experience.Join For Free
The concept of application transaction (also called business transaction or an end-user transaction) is at the heart of Application Performance Management. It is a sequence of user and system activities perceived by an end-user to be a logical unit of work accomplished in any business application.
For example, in a typical ERP:
- A user logging in or out
- Applying for leave or submission of timesheet
- Executing a financial transaction
Apart from technical requirements such as performance, availability, and security, it is equally important to consider performance as seen by the end-user. Business owners and senior management are more attuned to the end-user experience for the success of the business.
End-user experience is measured by replicating Application Usage, or Load Patterns, instead of executing an individual transaction in isolation. So understanding Load Patterns is an important step in Application Performance Management.
Application Usage Patterns
At any given point in time, a business application is used by more than one user. Each user is trying to interface with a different part of an application to execute their tasks. And the set of activities varies at times, which results in more than one pattern of transaction load induced on the system.
The occurrence time of transactions, the number of bytes transferred, and the response code are monitored and stored in the time-series database. Mathematically, counts of individual transactions are aggregated in a time window of measurement to represent a vector in a multi-dimensional space, of which the count of each transaction corresponds to one dimension. The data set will be accumulated for a defined period and used to train Machine Learning models. Ensure there are no application outages during this time.
Machine Learning Models
Traditional clustering techniques such as K-Means, KNN, etc., are suitable for low dimensionality data set. For high dimensionality data, hierarchical clustering algorithms, such as DBSCAN, are proven to be better performant and result in more granular clusters. Apply hierarchical clustering algorithms to cluster training data to arrive at load profiles at granular levels before consolidating at higher-level abstractions. Consolidation algorithms produce models to represent patterns that can be easily deployable to classify new data points in real-time and to interpret the usage pattern.
Once the data is segmented, business executives and engineering teams would like to know what makes each pattern unique. This will help us to understand which types of customers we have and their usage patterns of the application.
One approach is to simply plot all volumes normalized and see where the differences are. However, it would be difficult to visualize and interpret with more than 10 unique types of transactions.
The solution would be to select a subset of transactions that, to a certain extent, are important when defining load patterns. There are two methods that can be used—the variance between averaged groups and extracting important ones through predictive modeling.
Variance Within Variables and Between Patterns
The assumption is that if the average volume of a transaction ordered by a pattern differs significantly among the others, that transaction is likely an important member of the pattern.
Next, simply calculate the variance of means between patterns within each pattern with each transaction and select the top-n transactions with the highest variance.
The data is normalized between 0 and 1 for easier interpretation.
Key Business Benefit
- Points to problems in UI or UX to improve user experience
- Inform where application usage impacts performance
- Identify anomalies such as unexpected and unauthorized access
- Track compliance and provide real-time user help
- Understand trends in application usage over time
- Understand which features are adopted and which are ignored
- Feature prioritization or roadmap development
- Inform product management decisions and measure customer health
- Better tailoring of in-application messaging to convert prospective customers
- Educated decisions on products and feature usage to drive new revenue
Opinions expressed by DZone contributors are their own.