Performance monitoring of network applications
First Claim
Patent Images
1. A machine-implemented method for monitoring performance of an application, comprising:
- sending a first request by a client, the first request sent over a network to an application server;
receiving machine-executable code at the client in response to sending the first request;
sending a second request by the client, the second request sent over the network to the application server;
determining whether each of one or more first events are associated with user selection of either an anchor or a form submit;
storing first time information in either a primary file or a secondary file by executing the machine-executable code at the client, the storing first time information includes storing the first time information by a first event handler executing said machine-executable code in response to detecting each of the one or more first events in a browser application, the first time information is stored in the primary file if the first event is a primary click event associated with an element that includes either an anchor or a form submit, the first time information is stored in secondary file if the first event is a secondary click event associated with an element other than an anchor or a form submit;
accessing a second time information by executing the machine-executable code at the client, the accessing second time information includes accessing the second time information by a second event handler executing said machine-executable code in response to detecting a second event in said browser application, the second time information associated with a response received by the client in response to the second request; and
sending the first time information and the second time information, the first time information includes time information from the primary file if the primary file exists and contains the first time information, the first time information includes time information from the secondary file if the secondary file exists and contains the first time information.
3 Assignments
0 Petitions
Accused Products
Abstract
Network performance is monitored using timing information retrieved from a client device, server in communication with the client, or both. Client side timing information is retrieved using performance monitoring code provided by the server. The code may be provided to the client as part of a content response. Once content in the provided content response is loaded, the code sends the timing information to the server. The server may then process the timing information to calculate response time and other time information metrics.
64 Citations
45 Claims
-
1. A machine-implemented method for monitoring performance of an application, comprising:
-
sending a first request by a client, the first request sent over a network to an application server; receiving machine-executable code at the client in response to sending the first request; sending a second request by the client, the second request sent over the network to the application server; determining whether each of one or more first events are associated with user selection of either an anchor or a form submit; storing first time information in either a primary file or a secondary file by executing the machine-executable code at the client, the storing first time information includes storing the first time information by a first event handler executing said machine-executable code in response to detecting each of the one or more first events in a browser application, the first time information is stored in the primary file if the first event is a primary click event associated with an element that includes either an anchor or a form submit, the first time information is stored in secondary file if the first event is a secondary click event associated with an element other than an anchor or a form submit; accessing a second time information by executing the machine-executable code at the client, the accessing second time information includes accessing the second time information by a second event handler executing said machine-executable code in response to detecting a second event in said browser application, the second time information associated with a response received by the client in response to the second request; and sending the first time information and the second time information, the first time information includes time information from the primary file if the primary file exists and contains the first time information, the first time information includes time information from the secondary file if the secondary file exists and contains the first time information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 34, 35, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
12. One or more processor readable storage devices having processor readable code stored on said processor readable storage devices, said processor readable code which when executed on one or more processors causes the one or more processors to perform a method comprising:
-
receiving a first request from a client over a network; sending machine-executable performance monitoring code to the client in response to the first request, the machine-executable performance monitoring code is capable of being executed at the client to provide timing information associated with subsequent requests from the client, the performance monitoring code is configured to register code with event handlers associated with a browser application in order to monitor the subsequent requests, the performance monitoring code is configured to record the time that primary click events associated with selection of a hyperlink or form submit occurred in a primary file and to record the time that secondary click events associated with an element other than a hyperlink or form submit occurred in a secondary file, the performance monitoring code is configured to send first timing information and the second timing information, the first timing information includes time information from the primary file if the primary file exists, the first timing information includes time information from the secondary file if the secondary file exists; receiving a second request from the client over the network; sending a content response to the client in response to the second request; receiving timing information from the client in response to the content response, the timing information including the first timing information that is associated with the second request and a second timing information associated with the content response; and computing a response time associated with the second request, the response time computed at least in part from the timing information. - View Dependent Claims (13, 14, 15, 16, 17, 18, 36, 37)
-
-
19. An apparatus for processing data, comprising:
-
a communication interface; a storage device having processor readable code stored thereon; and one or more processors in communication with said storage device and said communication interface, said processor readable code which when executed on said one or more processors causes said one or more processors to perform a method comprising; receiving a request for content from a client; sending machine-executable performance monitoring code to said client over a network in response to receiving said content request, said machine-executable performance monitoring code is able to be executed by said client to provide timing information related to subsequent requests for content from said client, the performance monitoring code is configured to register code with event handlers in order to monitor the subsequent requests, the event handlers detect events associated with the subsequent requests, the performance monitoring code is configured to record in a primary file the time that primary click events associated with selection of a hyperlink or form submit occurred and to record in a secondary file the time that secondary click events associated with an element other than a hyperlink or form submit occurred, the performance monitoring code is configured to send first timing information and the second timing information, the first timing information includes time information from the primary file if the primary file exists, the first timing information includes time information from the secondary file if the secondary file exists; and receiving the first and second timing information over the network from the client, the first timing information including a time associated with receiving user input by the client, the second timing information including a time associated with providing content to the user by the client in response to the user input, said first and second timing information pertains to a subsequent request for content from said client. - View Dependent Claims (20, 21, 22, 23)
-
-
24. One or more processor readable storage devices having processor readable code stored on said processor readable storage devices, said processor readable code which when executed on one or more processors causes the one or more processors to perform a method comprising:
-
receiving a content response from a server, the response including processor executable performance monitoring code; executing the processor executable performance monitoring code to modify one or more event handlers, said one or more event handlers modified to store timing information, said one or more event handlers detect events associated with a content page for which the timing information pertains and record the time of the events, the events include primary click events associated with selection of a hyperlink or form submit and secondary click events associated with an element other than a hyperlink or form submit; sending a request to the server after receiving the content response; executing the processor executable performance monitoring code to store timing information in a first file and a second file, the time that a user clicked on an anchor or form submit on the content page is stored in the first file, the time that the user clicked on an element other than an anchor or a form submit is stored in the second file, the timing information associated with the request; and transmitting the timing information to the server, the transmitting includes transmitting timing information for the first file if timing information for the first file exists and transmitting timing information for the second file if timing information for the second file exists. - View Dependent Claims (25, 26, 27, 28)
-
-
29. A method for monitoring, comprising:
-
receiving timing information from a client in response to a content response, the timing information having one or more fields of data; comparing the timing information fields of data to one or more ordered timing information categories, each of the categories provides a different calculation for computing a time to respond to a request from said client for content; and determining a response time from the timing information data associated with the data fields that correspond to the highest ordered timing information categories, said determining a response time includes; (a) comparing a clicked URL and a current URL within the timing information, if the clicked URL and the current URL match, then; (b) determining whether the data fields include primary click data and a first browser load time, the primary click data includes a time at which either an anchor or form submit is selected in a content page at the client, and computing the response time as the difference between the primary click time and the first browser load time if available in the timing information; (c) if the data fields do not include primary click data and a first browser load time, then determining whether the fields of data include secondary click data and a second browser load time, the secondary click data includes a time at which an element other than an anchor or a form submit is selected at the client, and computing the response time as the difference between the secondary click time and the first browser load time if available in the timing information; and (d) if the clicked URL and the current URL do not match, then determining the response time based on either server side timing data if available or based upon On Unload Data and On Load data if available in the timing information. - View Dependent Claims (30, 31)
-
-
32. One or more processor readable storage devices having processor readable code stored on said processor readable storage devices, said processor readable code which when executed on one or more processors causes the one or more processors to perform a method comprising:
-
receiving timing information from a client device; comparing a clicked URL and a current URL within the timing information, if the clicked URL and the current URL match, then; determining whether said information from said client device includes timing information associated with a response time to a request from said client for content from a server, said determining whether the information from said client device includes timing information includes determining whether said information from the client device includes data associated with an On Click event at the client device and a load time associated with a response to the request, the load time is associated with a time that a browser application loads content associated with the response, the On Click event occurs in response to selection of an element within a content page provided by the browser application; performing a computation using the timing information from said client device if said information from said client device includes the timing information associated with said response time to said request, the performing a computation using the timing information from said client device includes using timing information associated with said On Click event detected at the client device, the performing the computation includes using timing information that defines when an On Click event associated with selectable content occurred, if available, otherwise using timing information that defines when an On Click event associated with non-selectable content occurred; generating timing information associated with said response time to said request if said information from said client device does not include timing information associated with said response time to said request, said generating is based on events detected at the server; performing a computation using said generated timing information if said information from said client device does not include timing information associated with said response time to said request; if the clicked URL and the current URL do not match, then performing a computation based on either server side timing data if available or based upon On Unload Data and On Load data if available in the timing information; and providing a response time to said request for content from said client based on the computation performed. - View Dependent Claims (33)
-
Specification