IP Library Granted Patent US 7,765,295
Granted Patent B2
US 7,765,295 · App. 11/877,804 · Granted Jul 27, 2010

Methods and apparatus for real user monitoring

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,765,295
App. No.
11/877,804
Granted
Jul 27, 2010
Kind
B2
Abstract

A system monitors browser operation on a web page to identify objects referenced by the web page. For objects referenced by the web page, the system tracks a performance metric associated with each object. The system performs post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page, and transfers the performance record to a remote server for analysis of performance of web page operation in the browser.

Claims (119)

1. A computer-implemented method for identifying performance of web page operation in a browser, the computer-implemented method comprising:

determining if browser operation on a web page is subject to monitoring, the web page loaded for access by the browser, the web page including embedded code for executing a browser monitoring process, the browser executing the browser monitoring process as an initial operation that the browser performs on the web page;

determining a level of monitoring to be performed on the browser operation, the level of monitoring selected from multiple predetermined levels of monitoring, each predetermined level of monitoring corresponding to an amount of data to record, the data associated with the browser operation on the web page;

monitoring the browser operation on the web page to identify objects referenced by the web page, including monitoring a web page object model maintained by the browser as the browser parses the web page to identify objects referenced by the web page;

for objects referenced by the web page, parsing the web page to identify objects subject to tracking and tracking a performance metric associated with each object;

performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page post-processing being performed at the browser; and

after creation of the performance record at the browser, transferring the performance record to a remote server for analysis of performance of web page operation in the browser.

2. The method computer-implemented of claim 1 wherein determining if the browser operation on the web page is subject to monitoring comprises:

obtaining performance collection information from a computer system on which the browser is operating;

transmitting the performance collection information to the remote server to determine if the computer system on which the browser is operating is subject to monitoring; and

receiving a response from the remote server.

3. The computer-implemented method of claim 2 wherein receiving a response from the remote server comprises:

identifying a filter; and

receiving notification that performance collection information from the computer system has been compared against the filter to determine that the browser operation on the web page is subject to monitoring.

4. The computer-implemented method of claim 1 wherein determining if the browser operation on the web page is subject to monitoring comprises:

determining the browser operation on the web page is subject to monitoring based on performance collection information residing on a computer system on which the browser is in operation;

determining that the performance record has been transmitted to the remote server; and

terminating the monitoring of the web page if the performance record has been transmitted.

5. The computer-implemented method of claim 1 wherein parsing the web page to identify objects subject to tracking the performance metric comprises:

identifying objects including at least one of:

i) an image;

ii) a cascading style sheet identifier;

iii) a portion of executable code;

iv) a frame; or

v) a user identified tracking tag.

6. The computer-implemented method of claim 1 comprising:

notifying an object handler that the parsing of the web page is completed, the object handler associated with an interface that allows access to the objects on the web page;

receiving notification to terminate parsing the web page; and

capturing a timestamp associated with the parsing of the web page.

7. The computer-implemented method of claim 6 wherein notifying the object handler that the parsing of the web page is completed comprises:

detecting an event status associated with the web page, the event status including at least one of:

i) a successful download of the web page;

ii) an error incurred by the web page a download of the web page; and

iii) an aborted download of the web page.

8. The computer-implemented method of claim 1 wherein for objects referenced by the web page, tracking a performance metric associated with each object comprises:

for each object referenced by the web page, adding an object handler to an interface that allows access to the objects on the web page.

9. The computer-implemented method of claim 8 wherein for each object referenced by the web page, adding the object handler comprises:

creating an event status associated with the object; and

capturing a timestamp for the event status associated with the object.

10. The computer-implemented method of claim 9 comprising:

determining a status associated with the object based on an analysis of the event status and the timestamp, the status associated the object including at least one of:

i) cached;

ii) blocked;

iii) successfully downloaded;

iv) unsuccessfully downloaded; or

v) aborted.

11. The computer-implemented method of claim 1 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page comprises:

obtaining at least one characteristic associated with the computer system on which the browser is in operation; and

storing performance collection information on the computer system, the performance collection information including at least one of:

i) the at least one obtained characteristic associated with the computer system on which the browser is operating; and

ii) the performance record.

12. The computer-implemented method of claim 1 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page comprises:

creating a graphical representation of the performance record at the browser; and

providing a graphical user interface in which to render the graphical representation of the performance record.

13. The computer-implemented method of claim 1 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page comprises:

calculating a load time associated with at least one of:

i) at least one object on the web page; and

ii) the web page.

14. The computer-implemented method of claim 1 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page comprises:

determining an action performed by a user based on at least one of:

i) a time stamp associated with the web page; and

ii) an object handler associated with the web page.

15. The computer-implemented method of claim 1 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page comprises:

detecting that an error occurred on the web page, the error indicating that the web page did not properly load at the browser;

identifying a level of reporting associated with monitoring of the web page, the level of reporting indicating how much detail to collect and process from the web page; and

in response to detecting that the error occurred on the web page, modifying the level of reporting associated with monitoring of the web page by increasing an amount of data associated with the performance metrics that is included in the performance record.

16. The computer-implemented method of claim 1 wherein transferring the performance record to a remote server for analysis of performance of web page operation in the browser comprises:

comparing at least one characteristic associated with the performance record with a threshold that determines an acceptable performance record;

determining the at least one characteristic associated with the performance record exceeds the threshold;

transmitting an alert to the remote server, the alert indicating that the performance record exceeds the threshold; and

discarding the performance record without transferring the performance record to the remote server.

17. The method computer-implemented of claim 1 wherein transferring the performance record to a remote server for analysis of performance of web page operation in the browser comprises:

detecting that the performance record has been created; and

determining that the performance record has not been transmitted to the remote server.

18. A computer readable medium encoded with computer programming logic that when executed on a process in a computerized device monitors performance, the medium comprising:

instructions for determining if browser operation on a web page is subject to monitoring, the web rage loaded for access by the browser, the web race including embedded code for executing a browser monitoring process, the browser executing the browser monitoring process as an initial operation that the browser performs on the web page;

instructions for determining a level of monitoring to be performed on the browser operation, the level of monitoring selected from multiple predetermined levels of monitoring, each predetermined level of monitoring corresponding to an amount of data to record, the data associated with the browser operation on the web page;

instructions for monitoring the browser operation on the web page to identify objects referenced by the web page, including monitoring a web page object model maintained by the browser as the browser parses the web page to identify objects referenced by the web page;

for objects referenced by the web page, instructions for parsing the web page to identify objects subject to tracking and instructions for tracking a performance metric associated with each object;

instructions for performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page, post-processing being performed at the browser; and

instructions for transferring the performance record to a remote server for analysis of performance of web page operation in the browser, transferring occurring after creation of the performance record at the browser.

19. A computerized device comprising:

a memory;

a processor;

a communications interface;

an interconnection mechanism coupling the memory, the processor and the communications interface;

wherein the memory is encoded with an performance monitoring application that when executed on the processor is capable of monitors performance on the computerized device by performing the operations of:

determining if browser operation on a web page is subject to monitoring, the web page loaded for access by the browser, the web page including embedded code for executing a browser monitoring process, the browser executing the browser monitoring process as an initial operation that the browser performs on the web page;

determining a level of monitoring to be performed on the browser operation, the level of monitoring selected from multiple predetermined levels of monitoring, each predetermined level of monitoring corresponding to an amount of data to record, the data associated with the browser operation on the web page;

monitoring the browser operation on the web page to identify objects referenced by the web page, including monitoring a web page object model maintained by the browser as the browser parses the web page to identify objects referenced by the web page;

for objects referenced by the web page, parsing the web page to identify objects subject to tracking and tracking a performance metric associated with each object;

performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page, post-processing being performed at the browser; and

after creation of the performance record at the browser, transferring the performance record to a remote server for analysis of performance of web page operation in the browser.

20. The computer-implemented method of claim 1 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page further comprises:

detecting that an error occurred on the web page, the error indicating that an object subject to tracking was not properly rendered at the browser;

identifying a level of reporting associated with monitoring of the web page, the level of reporting indicating an amount of performance metrics to collect;

based on the error that occurred on the web page, modifying the level of reporting associated with monitoring of the web page to increase the level of reporting and to include additional data associated with the error to assist in diagnosing the error; and

wherein transferring the performance record to a remote server for analysis of performance of web page operation in the browser comprises:

comparing at least one characteristic associated with the performance record with a threshold that determines an acceptable performance record;

determining the at least one characteristic associated with the performance record exceeds the threshold; and

transmitting an alert to the remote server, the alert indicating that the performance record exceeds the threshold.

21. The computer-implemented method of claim 20 wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page further comprises:

calculating a load time associated with at least one object on the web page;

determining an action performed by a user based on a time stamp associated with the web page

determining an action performed by a user based an object handler associated with the web page

obtaining at least one characteristic associated with the computer system on which the browser is in operation; and

storing performance collection information on the computer system, the performance collection information including the performance record.

22. The computer-implemented method of claim 1 , wherein performing post-processing on the performance metrics at the browser includes:

determining a viewable screen area representing an amount of the web page that is visible within a browser interface on a graphical user monitor; and

determining when all page objects references within the viewable screen area have completed loading to identify a performance metric that represents an amount of time from web page access to a time when the web page can be perceived as loaded.

23. The computer-implemented method of claim 22 , wherein performing post-processing on the performance metrics includes:

creating a timeline of events and a time duration of those events as part of creating the performance record before transferring to the remote server; and

displaying the timeline including displaying which objects loaded on the web page and an order in which the objects were loaded on the web page.

24. The computer-implemented method of claim 1 , wherein performing post-processing on the performance metrics of objects referenced by the web page to create a performance record for that web page comprises:

detecting that an error occurred on the web page, the error indicating that the browser did not properly render an object subject to tracking; and

in response to the error that occurred in the web page, modifying the predetermined level of monitoring to a different predetermined level of monitoring that increases the amount of data included in the performance record.

25. The computer-implemented method of claim 24 , wherein transferring the performance record to the remote server for analysis of performance of web page operation in the browser comprises:

transferring a first performance record upon completion of page loading; and

transferring a second performance record in response to identifying that user activity on the page is complete.

Assignments (13)
SECURITY INTEREST Recorded Dec 16, 2022
From: DYNATRACE LLC
To: BMO HARRIS BANK N.A.
Reel/Frame 062142/0187 →
RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 046923/0557 Recorded Dec 5, 2022
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: DYNATRACE, LLC
Reel/Frame 062056/0562 →
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL RECORDED AT R/F 46923/0528 Recorded Aug 6, 2019
From: JEFFERIES FINANCE LLC, COLLATERAL AGENT
To: DYNATRACE LLC
Reel/Frame 049966/0518 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Aug 24, 2018
From: DYNATRACE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046923/0557 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Aug 24, 2018
From: DYNATRACE LLC
To: JEFFERIES FINANCE LLC
Reel/Frame 046923/0528 →
RELEASE OF FIRST LIEN PATENT SECURITY AGREEMENT RECORDED AT REEL\FRAME 035200\0973 AND 035200\0955 Recorded Aug 23, 2018
From: JEFFERIES FINANCE LLC
To: DYNATRACE LLC; COMPUWARE CORPORATION
Reel/Frame 046922/0886 →
TERMINATION OF SECURITY INTEREST IN PATENTS AT REEL/FRAME NO. 035201/0065 Recorded Feb 14, 2018
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: COMPUWARE CORPORATION
Reel/Frame 045325/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2015
From: COMPUWARE CORPORATION
To: DYNATRACE LLC
Reel/Frame 035491/0492 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035200/0973 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 13, 2015
From: COMPUWARE CORPORATION
To: JEFFERIES FINANCE, LLC
Reel/Frame 035201/0065 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE TO 12/31/2009 AND ASSIGNEE ADDRESS TO C/O COMPUWARE CORPORATION, ONE CAMPUS MARTIUS, DETROIT, MI 48226 PREVIOUSLY RECORDED ON REEL 023741 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR: GOMEZ, INC. ASSIGNEE: GOMEZ ACQUISITION CORP.. Recorded Jan 8, 2010
From: GOMEZ, INC.
To: GOMEZ ACQUISITION CORP.
Reel/Frame 023750/0684 →
MERGER Recorded Jan 6, 2010
From: GOMEZ, INC.
To: GOMEZ ACQUISITION CORP.
Reel/Frame 023741/0001 →
MERGER Recorded Jan 6, 2010
From: GOMEZ ACQUISITION CORP.
To: COMPUWARE CORPORATION
Reel/Frame 023741/0343 →