Dynamically adjusted timeout value for proxy server
A method for dynamically adjusting a proxy server timeout includes identifying each microservice within a proxy server and mapping a topology of microservices, assigning each microservice to one of an application layer, a middleware layer and an infrastructure layer. Defining each representational state transfer (REST) application programming interface (API) calling relationship between each microservice and each other microservice. Determining a corresponding regression model defining a response time of each microservice based at least in part on a set of available response time predictors. Building a sequence model for at least one microservice in the application layer. Predicting an incoming REST API call and identifying a probable sequence model corresponding to the predicted incoming REST API call. Updating a timeout value of the predicted REST API call within the proxy server based on the sequentially predicted response times.
1 . A computer-implemented method comprising:
identifying, using a computer processor, each microservice within a proxy server and mapping a topology of microservices within the proxy server, the topology including each microservice within the proxy server and each representational state transfer (REST) application programming interface (API) calling relationship between each microservice and each other microservice, and wherein the topology identifies one of an application layer, a middleware layer, and an infrastructure layer corresponding to each microservice;
determining, using the computer processor, a regression model corresponding to each microservice, the regression model defining a response time of each microservice based at least in part on a set of available response time predictors;
building a sequence model for at least one microservice corresponding to the application layer;
predicting an incoming REST API call and identifying a probable sequence model corresponding to the predicted incoming REST API call using the computer processor;
sequentially predicting a response time corresponding to each microservice in the sequence using the corresponding regression model by initially predicting the response time of the last microservice in the sequence, and providing the predicted response time of the last microservice in the sequence to a regression model of an immediately prior microservice in the sequence, and iterating the response time prediction from the last microservice in the sequence to the first microservice in the sequence; and
updating, using the computer processor, a timeout value of the predicted REST API call within the proxy server based on the sequentially predicted response times.
2 . The computer-implemented method of claim 1 , wherein the set of available response time predictors includes real-time resources, REST API parameter information, and a downstream time duration of the REST API call.
3 . The computer-implemented method of claim 1 , wherein building a sequence model for at least one microservice corresponding to the application layer comprises building a sequence model for each microservice corresponding to the application layer.
4 . The computer-implemented method of claim 3 , wherein each sequence model is constructed by the processor according to historical data.
5 . The computer-implemented method of claim 4 , wherein the historical data includes available memory, disk usage, CPU usage, network throughput of the proxy server.
6 . The computer-implemented method of claim 1 , wherein the first microservice in the sequence corresponds to the application services layer.
7 . A method comprising:
identifying each microservice within a proxy server and mapping a topology of microservices within the proxy server, assigning each microservice to one of an application layer, a middleware layer and an infrastructure layer of the proxy server;
defining each representational state transfer (REST) application programming interface (API) calling relationship between each microservice and each other microservice within the proxy server;
determining, for each microservice in the proxy server, a corresponding regression model defining a response time of each microservice based at least in part on a set of available response time predictors;
building a sequence model for at least one microservice in the application layer;
predicting an incoming REST API call and identifying a probable sequence model corresponding to the predicted incoming REST API call;
sequentially predicting a response time corresponding to each microservice in the sequence using the corresponding regression model by predicting the response time corresponding to each microservice in the sequence comprises initially predicting the response time of the last microservice in the sequence, and providing the predicted response time of the last microservice in the sequence to a regression model of an immediately prior microservice in the sequence, and iterating the response time prediction from the last microservice in the sequence to the first microservice in the sequence; and
updating a timeout value of the predicted REST API call within the proxy server based on the sequentially predicted response times.
8 . The method of claim 7 , wherein the set of available response time predictors includes real-time resources, REST API parameter information, and a downstream time duration of the REST API call.
9 . The method of claim 7 , wherein building a sequence model for at least one application layer microservice comprises building a distinct sequence model for each application layer microservice.
10 . The method of claim 9 , wherein each sequence model is constructed according to historical data.
11 . The method of claim 10 , wherein the historical data includes available memory, disk usage, CPU usage, network throughput of the proxy server.
12 . The method of claim 7 , wherein the first microservice in the sequence corresponds to the application services layer.
13 . A system comprising:
a plurality of interconnected computational systems including at least one proxy server containing a plurality of microservices;
each microservice with the proxy server being assigned to one of an application service layer, a middleware service layer, and an infrastructure layer;
a computer processor configured to dynamically update a timeout value corresponding to each application layer microservice of the proxy server by:
mapping a topology of the microservices within the proxy server;
defining each representational state transfer (REST) application programming interface (API) calling relationship between each microservice and each other microservice within the proxy server;
determining, for each microservice in the proxy server, a corresponding regression model defining a response time based at least in part on a set of available response time predictors;
building a sequence model for at least one microservice in the application layer;
predicting an incoming REST API call and identifying a probable sequence model corresponding to the executing the predicted incoming REST API call;
sequentially predicting a response time corresponding to each microservice in the sequence using the corresponding regression model by initially predicting the response time of the last microservice in the sequence, and providing the predicted response time of the last microservice in the sequence to a regression model of an immediately prior microservice in the sequence, and iterating the response time prediction from the last microservice in the sequence to the first microservice in the sequence; and
updating a timeout value of the predicted REST API call within the proxy server based on the sequentially predicted response times.
14 . The system of claim 13 , wherein the set of available response time predictors includes real-time resources, REST API parameter information, and a downstream time duration of the REST API call.
15 . The system of claim 13 , wherein building a sequence model for at least one application layer microservice comprises building a distinct sequence model for each application layer microservice.
16 . The system of claim 15 , wherein each sequence model is constructed according to historical data.
17 . The system of claim 16 , wherein the historical data includes available memory, disk usage, CPU usage, network throughput of the proxy server.
18 . A computer program product comprising:
a non-transitory computer readable medium storing instructions for causing a processor to implement a dynamic microservice timeout update method within a proxy server, the method comprising:
identifying each microservice within a proxy server and mapping a topology of microservices within the proxy server, assigning each microservice to one of an application layer, a middleware layer and an infrastructure layer of the proxy server;
defining each representational state transfer (REST) application programming interface (API) calling relationship between each microservice and each other microservice within the proxy server;
determining, for each microservice in the proxy server, a corresponding regression model defining a response time of each microservice based at least in part on a set of available response time predictors;
building a sequence model for at least one microservice in the application layer;
predicting an incoming REST API call and identifying a probable sequence model corresponding to the predicted incoming REST API call;
sequentially predicting a response time corresponding to each microservice in the sequence using the corresponding regression model by initially predicting the response time of the last microservice in the sequence, and providing the predicted response time of the last microservice in the sequence to a regression model of an immediately prior microservice in the sequence, and iterating the response time prediction from the last microservice in the sequence to the first microservice in the sequence; and
updating a timeout value of the predicted REST API call within the proxy server based on the sequentially predicted response times.