Automatic web service monitoring
First Claim
1. A computer-implemented method for automatically monitoring a web service, comprising:
- intercepting an incoming request directed to the web service at a computing device comprising a processor and memory, the intercepted request comprising a uniform resource identifier (URI) that comprises one or more static path elements and one or more dynamic elements;
associating the intercepted request with one of a plurality of monitoring groups, wherein the monitoring groups are embodied as entries in a data structure maintained on a non-transitory storage device such that each entry corresponds to a resource of the web service, wherein the entries comprise respective counters comprising performance statistics pertaining to requests directed to the resource of the entry, and wherein associating the intercepted request with a hierarchical monitoring group comprises;
forming a modified URI for the incoming request in the memory of the computing device using the processor, wherein forming the modified URI comprises replacing a dynamic element of the incoming request URI with a common value using the processor,matching the modified URI in the memory of the computing device to a web resource corresponding to one of the entries of the data structure using the processor, andassociating the incoming request with the hierarchical monitoring group of the matching web resource,gathering performance statistics pertaining to a response generated by the web service to the incoming request at the computing device; and
updating the counter of the entry associated with the incoming request in response to gathering the performance statistics.
3 Assignments
0 Petitions
Accused Products
Abstract
According to various embodiments, the present invention provides live site performance monitoring in the context of logical resource hierarchies found in cloud computing systems. In particular, in one embodiment, the system of the present invention facilitates monitoring of new computing services without necessarily requiring explicit knowledge about such new services. Such services can include, for example and without limitation, those provided using a Representational State Transfer (REST) architecture, although the techniques described herein can also be used with other architectures. In one embodiment, the system of the present invention operates by automatically creating groups of items for performance monitoring, based on the hierarchy of a URI. Heuristics can be used to determine aggregatable hierarchy nodes.
29 Citations
20 Claims
-
1. A computer-implemented method for automatically monitoring a web service, comprising:
-
intercepting an incoming request directed to the web service at a computing device comprising a processor and memory, the intercepted request comprising a uniform resource identifier (URI) that comprises one or more static path elements and one or more dynamic elements; associating the intercepted request with one of a plurality of monitoring groups, wherein the monitoring groups are embodied as entries in a data structure maintained on a non-transitory storage device such that each entry corresponds to a resource of the web service, wherein the entries comprise respective counters comprising performance statistics pertaining to requests directed to the resource of the entry, and wherein associating the intercepted request with a hierarchical monitoring group comprises; forming a modified URI for the incoming request in the memory of the computing device using the processor, wherein forming the modified URI comprises replacing a dynamic element of the incoming request URI with a common value using the processor, matching the modified URI in the memory of the computing device to a web resource corresponding to one of the entries of the data structure using the processor, and associating the incoming request with the hierarchical monitoring group of the matching web resource, gathering performance statistics pertaining to a response generated by the web service to the incoming request at the computing device; and updating the counter of the entry associated with the incoming request in response to gathering the performance statistics. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system, comprising:
-
a monitoring data store comprising a non-transitory storage medium storing a tree data structure comprising a plurality of tree nodes, wherein each of the tree nodes comprises a) a resource path identifier corresponding to a resource of a web service, b) monitoring statistics pertaining to the respective resource; a computing device comprising a processor and network interface, computing device comprising a request filter configured for execution on the processor, wherein the request filter is configured to track monitoring statistics pertaining to the respective resources of the web service by use of the tree data structure, and wherein the request filter is further configured to; monitor incoming requests directed to the web service received through a network, generate modified resource identifiers corresponding to the incoming requests, wherein the modified resource identifier of an incoming request replaces a variable embedded within a resource identifier of the incoming request with a common value, correlate the incoming requests with respective tree nodes by comparing the modified resource identifiers of the incoming requests to the resource path identifiers of the tree nodes, capture metrics pertaining to the respective incoming requests, wherein the captured metrics of an incoming request comprise metrics related to a response generated by the web service to the incoming request, and update the monitoring statistics of the tree nodes that are correlated to the respective incoming requests on the monitoring data store based on the captured metrics pertaining to the respective incoming requests. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A non-transitory computer-readable storage medium comprising executable instructions configured to cause a computing device to perform operations, the operations comprising:
-
filtering incoming Hypertext Transfer Protocol (HTTP) requests directed to a web server, each incoming HTTP request comprising a uniform resource locator (URL) to reference a resource of the web server; accessing a monitoring tree data structure stored on non-volatile storage medium, the monitoring tree comprising nodes that correspond to respective resources of the web server, each node comprising a resource path identifier corresponding to a resource of the web server and a set of monitoring statistics; aggregating monitoring statistics pertaining to the incoming HTTP requests within the monitoring tree data structure, wherein aggregating monitoring statistics for an incoming HTTP request comprises; deriving a modified resource identifier from the URL of the incoming HTTP request by replacing dynamic path elements of the URL with a common value, searching the monitoring tree to identify a node that comprises a resource path identifier that matches the modified resource identifier of the incoming HTTP request, acquiring monitoring statistics corresponding to a response generated by the web server servicing to the incoming HTTP request, and updating monitoring statistics of the identified node with the acquired monitoring statistics. - View Dependent Claims (17, 18, 19, 20)
-
Specification