Predicting application failure using Machine Learning

Predicting application failure using Machine Learning

Here is a project carried out within the MonitorIT team of Edifixio by Houda, one of our interns, as part of an end-of-studies internship.

MonitorIT is Edifixio’ solution to orchestrate the monitoring duty of DevOps teams. MonitorIT brings together all the people with an interest in the proper functioning of the project within the same team! Its main goal is to help spread and organize the Devops culture within your organization.
 

Proactive monitoring is based, among other things, on the real-time values of the functional and technical probes of the monitored applications.The DevOps team uses these values to anticipate possible problems with the application.
 
The goal of the internship is to enrich the application with predictions on project probes, to better assist DevOps teams in their proactive monitoring task. The aim is to explore machine learning capabilities to predict the state of application probes to anticipate failures of monitored applications.

Technical stack
 

The MonitorIT application runs in Java on an Apache TomEE application server for the backend. The front end is implemented in React Native.

 

As part of the internship, the Amazon Sagemaker service has been deployed and configured to implement a forecasting Deep Learning algorithm based on time series to check the values of application probes on hourly, daily or week basis.

The algorithm of the Machine Learning has been implemented in two steps:
 

  • A first step to generate the model: the probe data, archived on Open Distro, is retrieved by SageMaker, to be used as training and test data on the DeepAR algorithm and to generate a data model that is then deployed on an EndPoint.
  • The second step was to integrate the call to the EndPoint of the model from the backend of the MonitorIT application. The EndPoint takes the latest data from the application probes and the desired prediction (1 hour, 1 day, 1 week) and generates the predictive values from the probes.

 

Results:

The MonitorIT application has been enriched with probe prediction values which provides DevOps teams with additional input into the assessment of the state of their application. Each team now has access to the probe status in real-time or on hourly, daily or weekly basis.

Next steps:

As a conclusion to my internship, I plan to improve the generated predictions by providing more training data and by adjusting the prediction algorithm.

 

 

Feel free to download the MonitorIT application.

Go to : https://monitorit.edifixio.com
 

AppStore
GooglePlay