Systems and methods of implementing tracking of resource usage for a cloud-based system
First Claim
1. A method comprising:
- setting filters to control a scope of tracking at least one of service entry data and service exit data, across multiple services running on multiple hardware instances, wherein the setting the filters comprises configuring transaction invocations to invoke cascading service invocations of the multiple services;
running an interpreter, configured to be run as an instance on the multiple hardware instances, to specify a profiled service, profiled method, or profiled class, corresponding to the service entry data or the service exit data for tracking as set in the filters, to receive a transaction ID among the multiple services, and to spawn an autonomous log unit upon entry or exit of any of the multiple services that correspond to the profiled service, profiled method, or profiled class, at an event boundary corresponding to the entrance or the exit;
applying the filters so that the autonomous log unit records at least one of the entry and exit of the multiple services corresponding to the profiled service, profiled method, or profiled class,wherein, as a result of a given transaction invocation of the transaction invocations, the data captured by the autonomous log unit comprises;
a transaction ID configured to span services and classes invoked following the given transaction invocation,a URI for the given transaction invocation,an identifier for the service or class entered or exited,a time stamp of a given service entry of the service entries or a given service exit of the service exits; and
a CPU time corresponding to the given transaction invocation;
analyzing performance of at least some of the transaction invocations by organizing the data captured by the autonomous log unit across the multiple services, organizing the autonomous log unit into nested service invocations by corresponding transaction IDs of the transaction invocations, and generating a single profile view of performance metrics of the cascading service invocations;
persisting results of the analyzing;
implementing service protection process that comprises determining, based on the single profile view, that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction; and
upon the determining that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction invocation, enforcing the governor limit for the given transaction invocation via the interpreter, wherein the maximum CPU time is determined based at least in part on whether the given transaction invocation corresponds to a synchronous process or to an asynchronous process.
1 Assignment
0 Petitions
Accused Products
Abstract
The technology disclosed describes systems and methods for implementing global profiling to track resource usage and performance for multiple threads across multiple servers for a cloud-based system. This disclosed technology provides global profiling to track resource usage across any part of a transaction as it passes between layers of a computing stack regardless of the language being executed, on logically different virtual machines across multiple servers. After data collection stops, the disclosed technology combines the results into a configurable profile view that accurately represents the order of execution of applications and methods, as though they ran on one machine. The disclosed technology builds multiple formats of the data files for different display visualizations.
170 Citations
25 Claims
-
1. A method comprising:
-
setting filters to control a scope of tracking at least one of service entry data and service exit data, across multiple services running on multiple hardware instances, wherein the setting the filters comprises configuring transaction invocations to invoke cascading service invocations of the multiple services; running an interpreter, configured to be run as an instance on the multiple hardware instances, to specify a profiled service, profiled method, or profiled class, corresponding to the service entry data or the service exit data for tracking as set in the filters, to receive a transaction ID among the multiple services, and to spawn an autonomous log unit upon entry or exit of any of the multiple services that correspond to the profiled service, profiled method, or profiled class, at an event boundary corresponding to the entrance or the exit; applying the filters so that the autonomous log unit records at least one of the entry and exit of the multiple services corresponding to the profiled service, profiled method, or profiled class, wherein, as a result of a given transaction invocation of the transaction invocations, the data captured by the autonomous log unit comprises; a transaction ID configured to span services and classes invoked following the given transaction invocation, a URI for the given transaction invocation, an identifier for the service or class entered or exited, a time stamp of a given service entry of the service entries or a given service exit of the service exits; and a CPU time corresponding to the given transaction invocation; analyzing performance of at least some of the transaction invocations by organizing the data captured by the autonomous log unit across the multiple services, organizing the autonomous log unit into nested service invocations by corresponding transaction IDs of the transaction invocations, and generating a single profile view of performance metrics of the cascading service invocations; persisting results of the analyzing; implementing service protection process that comprises determining, based on the single profile view, that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction; and upon the determining that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction invocation, enforcing the governor limit for the given transaction invocation via the interpreter, wherein the maximum CPU time is determined based at least in part on whether the given transaction invocation corresponds to a synchronous process or to an asynchronous process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer implemented system applied to tracking resource usage of a cloud based system, the computer implemented system including:
-
a processor; and memory coupled to the processor, wherein the processor is configured to perform operations comprising; setting filters to control a scope of tracking at least one of service entry data and service exit data across multiple services running on multiple hardware instances, wherein the setting the filters comprises configuring transaction invocations to invoke cascading service invocations of the multiple services; running an interpreter, configured to be run as an instance on the multiple hardware instances, to specify a profiled service, profiled method, or profiled class, corresponding to the service entry data or the service exit data for tracking as set in the filters, to receive a transaction ID among the multiple services, and to spawn an autonomous log unit upon entry or exit of any of the multiple services that correspond to the profiled service, profiled method, or profiled class, at an event boundary corresponding to the entrance or the exit; applying the filters so that the autonomous log unit records at least one of the entry and exit of the multiple services corresponding to the profiled service, profiled method, or profiled class, wherein, as a result of a given transaction invocation of the transaction invocations, the data captured by the autonomous log unit comprises; a transaction ID configured to span services and classes invoked following the given transaction invocation, a URI for the given transaction invocation, an identifier for the service or class entered or exited, a time stamp of a given service entry of the service entries or a given service exit of the service exits; and a CPU time corresponding to the given transaction invocation; analyzing performance of at least some of the transaction invocations, by organizing the data captured by the autonomous log unit across the multiple services, organizing the autonomous log unit into nested service invocations by corresponding transaction IDs of the transaction invocations, and generating a single profile view of performance metrics of the cascading service invocations; persisting results of the analyzing; implementing service protection process that comprises determining, based on the single profile view, that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction; and upon the determining that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction invocation, enforcing the governor limit for the given transaction invocation via the interpreter, wherein the maximum CPU time is determined based at least in part on whether the given transaction invocation corresponds to a synchronous process or to an asynchronous process. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. A non-transitory computer-readable storage medium that stores program instructions that implement tracking resource usage of a cloud based system, wherein the instructions, when executed by at least one processor, cause the at least one processor to perform operations including:
-
setting filters to control a scope of tracking at least one of service entry data and service exit data across multiple services running on multiple hardware instances, wherein the setting the filters comprises configuring transaction invocations to invoke cascading service invocations of the multiple services; running an interpreter, configured to be run as an instance, on the multiple hardware instances, to specify a profiled service, profiled method, or profiled class, corresponding to the service entry data or the service exit data for tracking as set in the filters, to receive a transaction ID among the multiple services, and to spawn an autonomous log unit upon entry or exit of profiled services or classes, at an event boundary corresponding to the entrance or the exit; applying the filters so that the autonomous log unit records at least one of the entry and exit of the multiple services corresponding to the profiled service, profiled method, or profiled class, wherein, as a result of a given transaction invocation of the transaction invocations, the data captured by the autonomous log unit comprises; a transaction ID configured to span services and classes invoked following the given transaction invocation, a URI for the given transaction invocation, an identifier for the service or class entered or exited, a time stamp of a given service entry of the service entries or a given service exit of the service exits; and a CPU time corresponding to the given transaction invocation; analyzing performance of at least some of the transaction invocations organizing the data captured by the autonomous log unit across the multiple services, organizing the autonomous log unit into nested service invocations by corresponding transaction IDs of the transaction invocations, and generating a single profile view of performance metrics of the cascading service invocations; persisting results of the analyzing; implementing service protection process that comprises determining, based on the single profile view, that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction; and upon the determining that the CPU time corresponding to the given transaction invocation exceeds a maximum CPU time corresponding to the given transaction invocation, enforcing the governor limit for the given transaction invocation via the interpreter, wherein the maximum CPU time is determined based at least in part on whether the given transaction invocation corresponds to a synchronous process or to an asynchronous process. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification