IP Library › Granted Patent US 12,348,378
Granted Patent B2
US 12,348,378 · App. 17/498,037 · Granted Jul 1, 2025

Real user monitoring statistics from end users

Inventors: Chenglong Zheng (Fremont, CA); Srikanth Devarajan (Cupertino, CA); Sandeep Kamath Voderbet (Sunnyvale, CA); Sanjit Ganguli (Great Falls, VA)
Assignee: Zscaler, Inc.
H04L41/142G06F16/955G06F16/9577G06F16/986H04L43/045H04L67/10H04L67/125
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 12,348,378
App. No.
17/498,037
Granted
Jul 1, 2025
Kind
B2
Abstract

Systems and methods for implemented by a user device for Real User Monitoring (RUM) include operating an add on for a web browser; receiving a list of domains or Uniform Resource Locators (URLs) to calculate RUM data thereon; responsive to the web browser accessing any of the domains or URLs in the list, calculating and storing RUM data; and periodically sending the stored RUM data to a cloud-based system. The RUM data can include statistics, metrics, and errors that are detected based on any of start of navigation, redirects, Domain Name System (DBS), connection establishment and teardown, Hypertext Transfer Protocol (HTTP) request and response start and end, Document Object Model (DOM) load time, page load time, and Java Script and AJAX error detection.

Claims (49)

1. A method implemented by an add on having source code or executables for additional functionality installed to a web browser of a user device by a user for Real User Monitoring (RUM), the method comprising steps of:

receiving the add on via the user manually installing the add on or via the add on being pushed to the user device by an IT admin via a Mobile Device Management (MDM) service;

responsive to the receiving, operating the add on for the web browser;

receiving, from a cloud-based system, a preconfigured list of domains or Uniform Resource Locators (URLs) at the add on to be monitored to calculate RUM data thereon, wherein the preconfigured list of domains or URLs comprises one or more domains or URLs to be monitored;

periodically pulling configurations from a central authority of the cloud-based system, the configurations including updated lists of domains, URLs, and other assets to monitor;

responsive to the web browser accessing any of the domains or URLs in the list, calculating and storing RUM data for any domains or URLs present in the list that are accessed via the web browser; and

periodically sending the stored RUM data from the add on to any of a connector application executing on the user device and the cloud-based system.

2. The method of claim 1 , wherein the RUM data includes statistics, metrics, and errors that are detected based on any of start of navigation, redirects, Domain Name System (DNS), connection establishment and teardown, Hypertext Transfer Protocol (HTTP) request and response start and end, Document Object Model (DOM) load time, page load time, and Java Script and AJAX error detection.

3. The method of claim 1 , wherein the RUM data is a first set of RUM data, and wherein the steps further include calculating and storing a second set of RUM data for domains or URLs not on the list;

sending the first RUM data and the second RUM data to the connector application executing on the user device; and

displaying the first set of RUM data and/or the second set of RUM data on a User Interface (UI) of the connector application executing on the user device.

4. The method of claim 1 , wherein the steps further include aggregating and processing the RUM data via the add on locally at the user device; and

periodically sending the RUM data from the add on to the connector application executing on the user device.

5. The method of claim 1 , wherein the add on is a user performance monitoring (UPM) browser extension.

6. The method of claim 1 , wherein the add on is a plugin configured to calculate any of RUM statistics, RUM metrics, or RUM errors.

7. A non-transitory computer-readable medium comprising instructions that, when executed, cause at least one processor associated with a user device to perform steps of:

receiving an add on via a user manually installing the add on or via the add on being pushed to the user device by an IT admin via a Mobile Device Management (MDM) service;

responsive to the receiving, operating the add on having source code or executables for additional functionality for a web browser installed to a web browser of the user device by the user;

receiving, from a cloud-based system, a preconfigured list of domains or Uniform Resource Locators (URLs) at the add on to be monitored to calculate RUM data thereon, wherein the preconfigured list of domains or URLs comprises one or more domains or URLs to be monitored;

periodically pulling configurations from a central authority of the cloud-based system, the configurations including updated lists of domains, URLs, and other assets to monitor;

responsive to the web browser accessing any of the domains or URLs in the list, calculating and storing RUM data for any domains or URLs present in the list that are accessed via the web browser; and

periodically sending the stored RUM data from the add on to any of a connector application executing on the user device and the cloud-based system.

8. The non-transitory computer-readable medium of claim 7 , wherein the RUM data includes statistics, metrics, and errors that are detected based on any of start of navigation, redirects, Domain Name System (DNS), connection establishment and teardown, Hypertext Transfer Protocol (HTTP) request and response start and end, Document Object Model (DOM) load time, page load time, and Java Script and AJAX error detection.

9. The non-transitory computer-readable medium of claim 7 , wherein the RUM data is a first set of RUM data, and wherein the steps further include

calculating and storing a second set of RUM data for domains or URLs not on the list;

sending the first RUM data and the second RUM data to the connector application executing on the user device; and

displaying the first set of RUM data and/or the second set of RUM data on a User Interface (UI) of the connector application executing on the user device.

10. The non-transitory computer-readable medium of claim 7 , wherein the steps further include

aggregating and processing the RUM data via the add on locally at the user device; and

periodically sending the RUM data from the add on to the connector application executing on the user device.

11. The non-transitory computer-readable medium of claim 7 , wherein the add on is a browser extension.

12. The non-transitory computer-readable medium of claim 7 , wherein the add on is a plugin.

13. A user device comprising:

at least one processor and memory including instructions that, when executed, cause the at least one processor to

receive an add on via a user manually installing the add on or via the add on being pushed to a user device by an IT admin via a Mobile Device Management (MDM) service;

operate the add on having source code of executables code for additional functionality for a web browser installed to a web browser of a user device by the user;

receive, from a cloud-based system, a preconfigured list of domains or Uniform Resource Locators (URLs) at the add on to be monitored to calculate RUM data thereon, wherein the preconfigured list of domains or URLs comprises one or more domains or URLs to be monitored;

periodically pull configurations from a central authority of the cloud-based system, the configurations including updated lists of domains, URLs, and other assets to monitor;

responsive to the web browser accessing any of the domains or URLs in the list, calculate and store RUM data for any domains or URLs present in the list that are accessed via the web browser; and

periodically send the stored RUM data from the add on to any of a connector application executing on the user device and the cloud-based system.

14. The user device of claim 13 , wherein the RUM data includes statistics, metrics, and errors that are detected based on any of start of navigation, redirects, Domain Name System (DNS), connection establishment and teardown, Hypertext Transfer Protocol (HTTP) request and response start and end, Document Object Model (DOM) load time, page load time, and Java Script and AJAX error detection.

15. The user device of claim 13 , wherein the RUM data is a first set of RUM data, and wherein the instructions that, when executed, cause the at least one processor to

calculate and store a second set of RUM data for domains or URLs not on the list;

send the first RUM data and the second RUM data to the connector application executing on the user device; and

display the first set of RUM data and/or the second set of RUM data on a User Interface (UI) of the connector application executing on the user device.

16. The user device of claim 13 , wherein the instructions that, when executed, cause the at least one processor to

aggregate and processing the RUM data via the add on locally at the user device; and

periodically sending the RUM data from the add on to the connector application executing on the user device.

17. The user device of claim 13 , wherein the add on is one of a browser extension and a plugin.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2021
From: ZHENG, CHENGLONG; DEVARAJAN, SRIKANTH; VODERBET, SANDEEP KAMATH; GANGULI, SANJIT
To: ZSCALER, INC.
Reel/Frame 057749/0826 →
Continuity (5)
Continuation In Part 16798952 · Feb 24, 2020
Continuation In Part 16284202 · Feb 25, 2019
Continuation In Part 16284106 · Feb 25, 2019
Continuation In Part 16284073 · Feb 25, 2019
Related Publication 20220027431A1 · Jan 27, 2022
References Cited (61)
US 7926116B2 · Kamath et al. · 2011 [cited by applicant]
US 8010085B2 · Apte et al. · 2011 [cited by applicant]
US 8116207B2 · Schekochikhin et al. · 2012 [cited by applicant]
US 8185510B2 · Chaudhry et al. · 2012 [cited by applicant]
US 8230054B2 · Mutnuru et al. · 2012 [cited by applicant]
US 8230055B2 · Kondamuru et al. · 2012 [cited by applicant]
US 8259571B1 · Raphel et al. · 2012 [cited by applicant]
US 8275871B2 · Ram et al. · 2012 [cited by applicant]
US 8335943B2 · Kamath et al. · 2012 [cited by applicant]
US 8429111B1 · Kailash et al. · 2013 [cited by applicant]
US 8458786B1 · Kailash et al. · 2013 [cited by applicant]
US 8464335B1 · Sinha et al. · 2013 [cited by applicant]
US 8763071B2 · Sinha et al. · 2014 [cited by applicant]
US 8812904B2 · Kamath et al. · 2014 [cited by applicant]
US 8825859B2 · Mutnuru et al. · 2014 [cited by applicant]
US 8832260B2 · Raja et al. · 2014 [cited by applicant]
US 8838630B2 · Bots et al. · 2014 [cited by applicant]
US 8887249B1 · Schekochikhin et al. · 2014 [cited by applicant]
US 8955091B2 · Kailash et al. · 2015 [cited by applicant]
US 9065800B2 · Devarajan et al. · 2015 [cited by applicant]
US 9185019B2 · Kamath et al. · 2015 [cited by applicant]
US 9426220B2 · Chauhan et al. · 2016 [cited by applicant]
US 9471469B2 · Mishra et al. · 2016 [cited by applicant]
US 9473537B2 · Sinha et al. · 2016 [cited by applicant]
US 9519518B2 · Kamath et al. · 2016 [cited by applicant]
US 9531758B2 · Devarajan et al. · 2016 [cited by applicant]
US 9569195B2 · Schekochikhin et al. · 2017 [cited by applicant]
US 9596299B2 · Yengalasetti et al. · 2017 [cited by applicant]
US 9596305B2 · Chauhan et al. · 2017 [cited by applicant]
US 9619542B2 · Kamath et al. · 2017 [cited by applicant]
US 9621666B2 · Bots et al. · 2017 [cited by applicant]
US 9621668B2 · Kamath et al. · 2017 [cited by applicant]
US 9760283B2 · Kalipatnapu et al. · 2017 [cited by applicant]
US 9781196B2 · Suganthi et al. · 2017 [cited by applicant]
US 9866463B2 · Raja et al. · 2018 [cited by applicant]
US 9888068B2 · Kamath et al. · 2018 [cited by applicant]
US 9912638B2 · Kailash et al. · 2018 [cited by applicant]
US 9935955B2 · Desai et al. · 2018 [cited by applicant]
US 10007699B2 · Pangeni et al. · 2018 [cited by applicant]
US 10216790B2 · Kailash et al. · 2019 [cited by applicant]
US 10432651B2 · Pangeni et al. · 2019 [cited by applicant]
US 10728117B1 · Sharma et al. · 2020 [cited by applicant]
US 10749907B2 · Sinha et al. · 2020 [cited by applicant]
US 10824409B2 · Arumugam et al. · 2020 [cited by applicant]
US 10846136B2 · Muthiah et al. · 2020 [cited by applicant]
US 10880377B2 · Ghatak et al. · 2020 [cited by applicant]
US 10892964B2 · Sharma et al. · 2021 [cited by applicant]
US 10938686B2 · Sharma et al. · 2021 [cited by applicant]
US 20080114875A1 · Anastas · 2008 [cited by examiner]
US 20110185436A1 · Koulinitch · 2011 [cited by examiner]
US 20140344345A1 · Venkatraman · 2014 [cited by examiner]
US 20150067146A1 · Raker · 2015 [cited by examiner]
US 20170316005A1 · Minh · 2017 [cited by examiner]
US 20180054737A1 · Guo · 2018 [cited by examiner]
US 20200259792A1 · Devarajan et al. · 2020 [cited by applicant]
US 20200259793A1 · Pangeni et al. · 2020 [cited by applicant]
US 20210119798A1 · Bayar et al. · 2021 [cited by applicant]
EP 2517406B1 · 2015 [cited by applicant]
EP 2070296B1 · 2015 [cited by applicant]
WO WO2013090723A1 · 2013 [cited by examiner]
WO WO2015035074A1 · 2015 [cited by examiner]
Cited By (1)
US 12,519,703