Method and system for generating key performance indicator prediction model for multi-cloud applications
This disclosure relates generally to method and system for generating key performance indicator prediction model for multi-cloud applications. The disclosed method determines an optimized resource model and a predictive cost structure for one or more multi-cloud applications. The method receives a composite usage request to obtain a current resource consumption metrics and a cost structure for each cloud application identifier (ID). Further, a set of cloud provider API endpoints are invoked to obtain a plurality of usage tracking metrics. Further, a plurality of views are generated for each cloud application ID by processing every record associated with each API response file with allocated resource data. Then, a KPI prediction model is generated by leveraging autoregressive integrated moving average on the KPI time series data to determine an optimized resource model and a cost structure.
1 . A processor implemented method for generating key performance indicator (KPI) prediction model in multi-cloud application to monitor and configure various cloud-specific parameters for multi-cloud applications among multiple cloud service providers, comprising:
receiving from one or more multi-cloud hosted application via one or more hardware processors, a composite usage request to obtain one or more current resource consumption metrics and a cost structure for each cloud application identifier (ID), and simultaneously obtaining a set of cloud application identities (ID) to fetch one or more associated resource metrics, a cloud provider name associated with each cloud account identity (ID), a current value of a key reference metric associated with each cloud application, a set of application programming interface (API) endpoints to fetch a current operating cloud metric and a current application metric, and a configuration data connecting each API end point metrics;
invoking the set of API endpoints via the one or more hardware processors, to obtain a plurality of usage tracking metrics for each cloud application ID based on an API endpoint calling structure, wherein for each API endpoint call an associated API response file is created and stored in an output metrics folder, and wherein each API response file includes data associated with each API endpoint, wherein the set of API endpoints include a cloud resource provider server, a cloud resource monitoring server, a cloud resource metering server, a cloud performance monitoring server, and an application KPI dashboard, wherein the set of API endpoints are called the obtain the plurality of usage tracking metrics for each cloud application ID from time series data for a predefined time period, wherein the time series data starts at a previous time in a time slice for every cycle of the predefined time period;
generating for each API response file via the one or more hardware processors, a mapping file, and an error file for each cloud application ID by performing a meta scan on the output metrics folder, wherein the step of generating the mapping file and the error file for each API response file of the cloud application ID comprises:
extracting for each cloud application ID one or more metatags from each API response file of each API endpoint associated with the output metrics folder;
creating a set of mapping records for two or more identical metatags associated with each API response file and the cloud application ID, and creating a new file for one or more unidentical flagged metatags; and
generating the mapping file and the error file for the two or more identical metatags corresponding to each API response file associated with the output metrics folder;
generating via the one or more hardware processors, a plurality of relational tables comprising one or more records mapping in each API response file of each cloud application ID and loading the one or more records into a data staging model for flattening complex nested API response structure stored in each API response file;
generating via the one or more hardware processors, a plurality of views for each cloud application ID by processing every record associated with each API response file with an allocated resource data, and performing cartesian product on one or more unprocessed record of each API response file, wherein the plurality of views comprises an application view, a summary view, and an application summary view;
computing via the one or more hardware processors, an API endpoint correlation metric based on one or more composite metrics, and a composite KPI measure by applying correlation analytics on the plurality of views, wherein computing the API endpoint correlation metrics comprises:
obtaining the plurality of views comprising the application view, the summary view, and the application summary view;
grouping (i) the resource allocation data, the resource utilization data, the cost data, and the performance data for a predefined interval of time, and (ii) the business KPI data for the predefined interval of time;
computing the one or more composite metrics by summing the resource utilization data multiplied with a first predefined value, the resource cost multiplied with the first predefined value, and the performance data multiplied with the first predefined value and assigning a weightage for the composite metrics;
computing the composite KPI measure by summing a first predefined business KPI value multiplied with a second predefined value, a second predefined business KPI value multiplied with a third predefined value, and a third business KPI value multiplied with a third predefined value;
generating the API endpoint correlation metrics by plotting the composite metrics and the business KPI value; and
generating the business KPI view by plotting the composite metrics and the composite KPI measure; and
generating via the one or more hardware processors, a KPI prediction model leveraging an autoregressive integrated moving average (ARIMA) on the composite KPI time series data to determine an optimized resource model and a predictive cost structure for each cloud application ID based on the application summary view and the API endpoint correlation metrics and generates a report for the plurality of views,
determining the optimized resource model and the predictive cost structure for each cloud application ID by:
determining for each cloud application ID, resource utilization, and feeding historical correlation data to corresponding cloud provider's advisory services to obtain most optimized resource configurations, and after fetching the most optimized resource configuration, invoking corresponding cloud service provider's price engine APIs to obtain the predictive cost structure; and
dynamically monitoring the KPIs in real-time for multi-cloud applications from multiple cloud service providers by utilizing the optimized resource model and the predictive cost structure to assess achievable performance of the multi-cloud applications and to configure various cloud-specific parameters at time instances for multi-cloud applications among multiple cloud service providers.
2 . The processor implemented method as claimed in claim 1 , wherein the one or more current operating cloud metrics includes a resource allocation data obtained from the cloud resource provider server, a resource utilization data from the cloud resource monitoring server, a cost data obtained from the cloud resource metering server, and a performance data obtained from the cloud performance monitoring server.
3 . The processor implemented method as claimed in claim 1 , wherein the one or more current application metrics includes a business KPI data obtained from the business KPI dashboard.
4 . The processor implemented method as claimed in claim 1 , wherein the API endpoints of the cloud resource monitoring server are called to extract cloud resource monitoring data comprising CPU, storage metrics, network metrics, the API end points of the cloud resource metering server are called to extract cloud application specific cost data for instance specific cost data and service specific cost data, and wherein the API end points of the cloud performance monitoring server are called to extract a minimum CPU value, a maximum CPU value, an average CPU value, a minimum memory value, a maximum memory value, an average memory value, a volume metrics, a network metrics and wherein API endpoints of the application KPI dashboard are called to extract an application related KPIs comprising a number of transactions in an hour, a number of logins occurred in an hour, a number of registration requests placed in an hour, and wherein the API endpoint of the business KPI dashboard are called to extract business KPIs such as a number of orders placed, a revenue collected, a revenue recognized, an exit rate, a churn rate for a given time period.
5 . A system ( 100 ) for generating key performance indicator (KPI) prediction model in multi-cloud application to monitor and configure various cloud-specific parameters for multi-cloud applications among multiple cloud service providers, wherein the system ( 100 ) comprising:
a memory ( 102 ) storing instructions;
one or more communication interfaces ( 106 ); and
one or more hardware processors ( 104 ) coupled to the memory via the one or more communication interfaces ( 106 ), wherein the one or more hardware processors ( 104 ) are configured by the instructions to:
receive from a one or more multi-cloud hosted application a composite usage request to obtain one or more current resource consumption metrics and a cost structure for each cloud application identifier (ID), and simultaneously obtain a set of cloud application identities (ID) to fetch one or more associated resource metrics, a cloud provider name associated with each cloud account identity (ID), a current value of a key reference metric associated with each cloud application, a set of application programming interface (API) endpoints to fetch a current operating cloud metric and a current application metric, and a configuration data connecting each API end point metric;
invoke the set of API endpoints to obtain a plurality of usage tracking metrics for each cloud application ID based on an API endpoint calling structure, wherein for each API endpoint call an associated API response file is created and stored in an output metrics folder, and wherein each API response file includes data associated with each API endpoint, wherein the set of API endpoints include a cloud resource provider server, a cloud resource monitoring server, a cloud resource metering server, a cloud performance monitoring server, and an application KPI dashboard, wherein the set of API endpoints are called to obtain the plurality of usage tracking metrics for each cloud application ID from time series data for a predefined time period, wherein the time series data starts at a previous time in a time slice for every cycle of the predefined time period;
generate a mapping file and an error file for each cloud application ID of each API response file, by performing a meta scan on the output metrics folder, wherein to generate the mapping file and the error file for each API response file of the cloud application ID, the one or more hardware processors configured to:
extract for each cloud application ID one or more metatags from each API response file of each API endpoint associated with the output metrics folder;
create a set of mapping records for two or more identical metatags associated with each API response file and the cloud application ID, and creating a new file for one or more unidentical flagged metatags; and
generate the mapping file and the error file for the two or more identical metatags corresponding to each API response file associated with the output metrics folder;
generate a plurality of relational tables comprising one or more records mapping in each API response file of each cloud application ID and loading the one or more records into a data staging model for flattening complex nested API response structure stored in the API response file;
generate a plurality of views for each cloud application ID by processing every record associated with each API response file with an allocated resource data, and performing cartesian product on one or more unprocessed record of each API response file, wherein the plurality of views comprises an application view, a summary view, and an application summary view;
compute an API endpoint correlation metric based on one or more composite metrics, and a composite KPI measure by applying correlation analytics on the plurality of views, wherein to compute the API endpoint correlation metrics, the one or more hardware processors are configured to:
obtain the plurality of views comprising the application view, the summary view, and the application summary view;
group (i) the resource allocation data, the resource utilization data, the cost data, and the performance data for a predefined interval of time, and (ii) the business KPI data for the predefined interval of time;
compute the one or more composite metrics by summing the resource utilization data multiplied with a first predefined value, the resource cost multiplied with the first predefined value, and the performance data multiplied with the first predefined value and assigning a weightage for the composite metrics;
compute the composite KPI measure by summing a first predefined business KPI value multiplied with a second predefined value, a second predefined business KPI value multiplied with a third predefined value, and a third business KPI value multiplied with a third predefined value;
generate the API endpoint correlation metrics by plotting the composite metrics and the business KPI value; and
generate the business KPI view by plotting the composite metrics and the composite KPI measure; and
generate a KPI prediction model leveraging autoregressive integrated moving average (ARIMA) on the composite KPI time series data to determine an optimized resource model and a predictive cost structure for each cloud application ID based on the application summary view and the API endpoint correlation metrics and generating a report for the plurality of views,
determine the optimized resource model and the predictive cost structure for each cloud application ID by:
determining for each cloud application ID resource utilization, feeding historical correlation data to corresponding cloud provider's advisory services to obtain most optimized resource configurations, and after fetching the most optimized resource configurations, invoking corresponding cloud service provider's price engine APIs to obtain the predictive cost structure; and
dynamically monitor the KPIs in real-time for multi-cloud applications from multiple cloud service providers by utilizing the optimized resource model and the predictive cost structure to assess achievable performance of the multi-cloud applications and to configure various cloud-specific parameters at time instances for multi-cloud applications among multiple cloud service providers.
6 . The system 100 as claimed in claim 5 , wherein the one or more current operating cloud metrics includes a resource allocation data obtained from the cloud resource provider server, a resource utilization data from the cloud resource monitoring server, a cost data obtained from the cloud resource metering server, and a performance data obtained from the cloud performance monitoring server.
7 . The system 100 as claimed in claim 5 , wherein the one or more current application metrics includes a business KPI data obtained from the business KPI dashboard.
8 . One or more non-transitory machine-readable information storage mediums comprising one or more instructions which when executed by one or more hardware processors cause:
receiving from one or more multi-cloud hosted application, a composite usage request to obtain one or more current resource consumption metrics and a cost structure for each cloud application identifier (ID), and simultaneously obtaining a set of cloud application identities (ID) to fetch one or more associated resource metrics, a cloud provider name associated with each cloud account identity (ID), a current value of a key reference metric associated with each cloud application, a set of application programming interface (API) endpoints to fetch a current operating cloud metric and a current application metric, and a configuration data connecting each API end point metrics;
invoking the set of cloud provider API endpoints, to obtain a plurality of usage tracking metrics for each cloud application ID based on an API endpoint calling structure, wherein for each API endpoint call an associated API response file is created and stored in an output metrics folder, and wherein each API response file includes data associated with each API endpoint, wherein the set of API endpoints include a cloud resource provider server, a cloud resource monitoring server, a cloud resource metering server, a cloud performance monitoring server, and an application KPI dashboard, wherein the set of API endpoints are called to obtain the plurality of usage tracking metrics for each cloud application ID from time series data for a predefined time period, wherein the time series data starts at a previous time in a time slice for every cycle of the predefined time period;
generating for each API response file, a mapping file, and an error file for each cloud application ID by performing a meta scan on the output metrics folder, wherein the step of generating the mapping file and the error file for each API response file of the cloud application ID comprises:
extracting for each cloud application ID one or more metatags from each API response file of each API endpoint associated with the output metrics folder;
creating a set of mapping records for two or more identical metatags associated with each API response file and the cloud application ID, and creating a new file for one or more unidentical flagged metatags; and
generating the mapping file and the error file for the two or more identical metatags corresponding to each API response file associated with the output metrics folder;
generating a plurality of relational tables comprising one or more records mapping in each API response file of each cloud application ID and loading the one or more records into a data staging model for flattening complex nested API response structure stored in each API response file;
generating a plurality of views for each cloud application ID by processing every record associated with each API response file with an allocated resource data, and performing cartesian product on one or more unprocessed record of each API response file, wherein the plurality of views comprises an application view, a summary view, and an application summary view;
computing an API endpoint correlation metric based on one or more composite metrics, and a composite KPI measure by applying correlation analytics on the plurality of views, wherein computing the API endpoint correlation metrics comprises:
obtaining the plurality of views comprising the application view, the summary view, and the application summary view;
grouping (i) the resource allocation data, the resource utilization data, the cost data, and the performance data for a predefined interval of time, and (ii) the business KPI data for the predefined interval of time;
computing the one or more composite metrics by summing the resource utilization data multiplied with a first predefined value, the resource cost multiplied with the first predefined value, and the performance data multiplied with the first predefined value and assigning a weightage for the composite metrics;
computing the composite KPI measure by summing a first predefined business KPI value multiplied with a second predefined value, a second predefined business KPI value multiplied with a third predefined value, and a third business KPI value multiplied with a third predefined value;
generating the API endpoint correlation metrics by plotting the composite metrics and the business KPI value; and
generating the business KPI view by plotting the composite metrics and the composite KPI measure; and
generating a KPI prediction model leveraging an autoregressive integrated moving average (ARIMA) on the composite KPI time series data to determine an optimized resource model and a predictive cost structure for each cloud application ID based on the application summary view and the API endpoint correlation metrics and generates a report for the plurality of views,
determining the optimized resource model and the predictive cost structure for each cloud application ID by:
determining for each cloud application ID, resource utilization, and feeding historical correlation data to corresponding cloud provider's advisory services to obtain most optimized resource configurations, and after fetching the most optimized resource configuration, invoking corresponding cloud service provider's price engine APIs to obtain the predictive cost structure; and
dynamically monitoring the KPIs in real-time for multi-cloud applications from multiple cloud service providers by utilizing the optimized resource model and the predictive cost structure to assess achievable performance of the multi-cloud applications and to configure various cloud-specific parameters at time instances for multi-cloud applications among multiple cloud service providers.
9 . The one or more non-transitory machine-readable information storage mediums of claim 8 , wherein the one or more current operating cloud metrics includes a resource allocation data obtained from the cloud resource provider server, a resource utilization data from the cloud resource monitoring server, a cost data obtained from the cloud resource metering server, and a performance data obtained from the cloud performance monitoring server.
10 . The one or more non-transitory machine-readable information storage mediums of claim 8 , wherein the one or more current application metrics includes business KPI data obtained from the business KPI dashboard.