Predictive management of on-demand code execution
First Claim
1. A computer-implemented method for monitoring code execution in an on-demand code execution environment, the on-demand code execution environment comprising at least one virtual machine instance executing an initialized operating system and awaiting requests to execute user-specified code within that operating system, the method comprising:
- as implemented by one or more computing devices configured with specific computer-executable instructions,determining a task on the on-demand code execution environment to be actively monitored, wherein the task corresponds to a set of user-defined code executable by the virtual machine instance, and wherein the task is determined based at least in part on a frequency of service calls to the task received at the on-demand code execution environment, each service call requesting execution of the task at the on-demand code execution environment;
associating an individual execution of the task on the on-demand code execution environment with active monitoring information, wherein the active monitoring information identifies the individual execution of the task;
modifying a service call, generated by the individual execution of the task, to include the active monitoring information, wherein the service call invokes at least one of an external service or the on-demand code execution environment;
identifying subsequent service calls, received at the on-demand code execution environment, that include the active monitoring information;
associating the subsequent service calls that include the active monitoring information with the individual execution of the task;
receiving a request to generate a profile from the task;
generating a task profile based at least in part on the individual execution of the task and on the subsequent service calls that include the active monitoring information, wherein the task profile indicates a relationship between the individual execution and the subsequent service calls; and
transmitting the task profile to a computing device of a requesting user for display to the requesting user.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods are described for monitoring code execution within an on-demand code execution environment or other distributed code execution environment. The distributed, asynchronous nature of such environment can make determining the interactions between code executions difficult relative to traditional, non-distributed systems. The present disclosure enables the interrelations between code executions to be monitored by injecting monitoring information into the calls between those code executions. The monitoring information may be propagated through calls, such that a “path” or “trace” of code executions and calls can be determined. Data generated based on the monitoring information can be used to generate a profile for a set of code, so that a developer or other user may easily debug or optimize execution of the code.
-
Citations
23 Claims
-
1. A computer-implemented method for monitoring code execution in an on-demand code execution environment, the on-demand code execution environment comprising at least one virtual machine instance executing an initialized operating system and awaiting requests to execute user-specified code within that operating system, the method comprising:
as implemented by one or more computing devices configured with specific computer-executable instructions, determining a task on the on-demand code execution environment to be actively monitored, wherein the task corresponds to a set of user-defined code executable by the virtual machine instance, and wherein the task is determined based at least in part on a frequency of service calls to the task received at the on-demand code execution environment, each service call requesting execution of the task at the on-demand code execution environment; associating an individual execution of the task on the on-demand code execution environment with active monitoring information, wherein the active monitoring information identifies the individual execution of the task; modifying a service call, generated by the individual execution of the task, to include the active monitoring information, wherein the service call invokes at least one of an external service or the on-demand code execution environment; identifying subsequent service calls, received at the on-demand code execution environment, that include the active monitoring information; associating the subsequent service calls that include the active monitoring information with the individual execution of the task; receiving a request to generate a profile from the task; generating a task profile based at least in part on the individual execution of the task and on the subsequent service calls that include the active monitoring information, wherein the task profile indicates a relationship between the individual execution and the subsequent service calls; and transmitting the task profile to a computing device of a requesting user for display to the requesting user. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A system for monitoring code execution in a distributed code execution environment, the system comprising:
-
a computing device comprising a processor coupled to a memory, the memory including specific instructions to cause the computing system to; determine a task on the distributed code execution environment to be actively monitored, wherein the task corresponds to a set of user-defined code executable within the distributed code execution environment; associate an individual execution of the task on the distributed code execution environment with active monitoring information, wherein the active monitoring information identifies the individual execution of the task; modify a service call, generated by the individual execution of the task, to include the active monitoring information, wherein the service call invokes at least one of an external service or the distributed code execution environment; identify subsequent service calls, received at the distributed code execution environment, that include the active monitoring information; associate the subsequent service calls that include the active monitoring information with the individual execution of the task; receive a request to generate a profile from the task; generate a task profile based at least in part on the individual execution of the task and on the subsequent service calls that include the active monitoring information, wherein the task profile indicates a relationship between the individual execution and the subsequent service calls; and transmit the task profile to a computing device of a requesting user for display to the requesting user. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. Non-transitory, computer-readable storage media comprising computer-executable instructions for monitoring code execution in a distributed code execution environment, wherein the computer-executable instructions, when executed by a computer system, cause the computer system to:
-
determine a task on the distributed code execution environment to be actively monitored, wherein the task corresponds to a set of user-defined code executable within the distributed code execution environment; associate an individual execution of the task on the distributed code execution environment with active monitoring information, wherein the active monitoring information identifies the individual execution of the task; modify a service call, generated by the individual execution of the task, to include the active monitoring information, wherein the service call invokes at least one of an external service or the distributed code execution environment; associate subsequent service calls, received at the distributed code execution environment, that include the active monitoring information with the individual execution of the task; generate a task profile based at least in part on the individual execution of the task and on the subsequent service calls that include the active monitoring information, wherein the task profile indicates a relationship between the individual execution and the subsequent service calls; and transmit the task profile to a computing device of a requesting user for display to the requesting user. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification