IP Library › Granted Patent US 12,197,529
Granted Patent B2
US 12,197,529 · App. 18/187,574 · Granted Jan 14, 2025

Real user monitoring statistics from end users via plugin or browser extension

Inventors: Vaibhav Aher (San Jose, CA); Khaireddine Mazboudi (San Jose, CA); Sandeep Kamath (Sunnyvale, CA); Srikanth Devarajan (Cupertino, CA); Chakkaravarthy Periyasamy Balaiah (Sunnyvale, CA)
Assignee: Zscaler, Inc.
G06F16/986G06F16/955G06F16/9577H04L43/045
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,197,529
App. No.
18/187,574
Granted
Jan 14, 2025
Kind
B2
Abstract

A cloud service is executed on a plurality of nodes, each including at least one processor, and the cloud service is configured to communicate with a plurality of user devices, each user device associated with a user from an organization of a plurality of organizations, and each user device includes a plugin or browser extension installed thereon, provide configuration information to any of the plurality of user devices where the configuration information includes a plurality of domains to be monitored by the plugin or browser extension, wherein the plugin or browser extension is configured to monitor and/or determine real user monitoring (RUM) statistics when a given user device accesses one of the plurality of domains; and receive the RUM statistics from any of the plurality of user devices.

Claims (49)

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

installing a plugin or browser extension on the user device;

retrieving a configuration for the plugin from a central authority of the cloud-based system, the configuration comprising a list of domains to be monitored by the plugin, thereby allowing an admin of an organization to configure any domain or list of domains to be monitored by the plugin to calculate Real User Monitoring (RUM) statistics for specified domains and push calculated statistics for analysis that the organization can view;

performing inline monitoring, and detecting the user device is accessing a monitored domain based on the configuration;

responsive to the user device accessing the monitored domain, determining, via the plugin or browser extension, RUM statistics for the monitored domain; and

providing the RUM statistics, via the plugin or browser extension to any of a connector application executing on the user device, and a cloud-based service.

2. The non-transitory computer-readable medium of claim 1 , wherein the instructions that, when executed, further cause the at least one processor to perform steps of:

detecting the user device is accessing any of a plurality of monitored domains based on the configuration;

determining additional real user monitoring (RUM) statistics for the any of the plurality of monitored domains; and

providing the additional RUM statistics to the cloud-based service.

3. The non-transitory computer-readable medium of claim 1 , wherein the instructions that, when executed, further cause the at least one processor to perform steps of:

prior to the providing, one or more of buffering and processing the RUM statistics on the user device.

4. The non-transitory computer-readable medium of claim 1 , wherein the instructions that, when executed, further cause the at least one processor to perform steps of:

prior to the providing, receiving a request from the cloud-based service for any RUM statistics stored at the user device.

5. The non-transitory computer-readable medium of claim 1 , wherein the instructions that, when executed, further cause the at least one processor to perform steps of:

displaying on the user device analytics associated with the RUM statistics as well as any statistics for any visited domain.

6. The non-transitory computer-readable medium of claim 1 , wherein the configuration includes a list of domains to monitor, determined by an organization associated with a user of the user device.

7. The non-transitory computer-readable medium of claim 1 , wherein the RUM statistics are 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.

8. A method performed by a user device communicatively coupled to a cloud-based system, the method comprising steps of:

installing a plugin or browser extension on a user device;

retrieving a configuration for the plugin from a central authority of the cloud-based system, the configuration comprising a list of domains to be monitored by the plugin, thereby allowing an admin of an organization to configure any domain or list of domains to be monitored by the plugin to calculate Real User Monitoring (RUM) statistics for specified domains and push calculated statistics for analysis that the organization can view;

performing inline monitoring, and detecting the user device is accessing a monitored domain based on the configuration;

responsive to the user device accessing the monitored domain, determining, via the plugin or browser extension, RUM statistics for the monitored domain; and

providing the RUM statistics, via the plugin or browser extension to any of a connector application executing on the user device, and a cloud-based service.

9. The method of claim 8 , wherein the steps further include:

detecting the user device is accessing any of a plurality of monitored domains based on the configuration;

determining additional real user monitoring (RUM) statistics for the any of the plurality of monitored domains; and

providing the additional RUM statistics to the cloud-based service.

10. The method of claim 8 , wherein the steps further include:

prior to the providing, one or more of buffering and processing the RUM statistics on the user device.

11. The method of claim 8 , wherein the steps further include:

prior to the providing, receiving a request from the cloud-based service for any RUM statistics stored at the user device.

12. The method of claim 8 , wherein the steps further include:

displaying on the user device analytics associated with the RUM statistics as well as any statistics for any visited domain.

13. The method of claim 8 , wherein the configuration includes a list of domains to monitor, determined by an organization associated with a user of the user device.

14. The method of claim 8 , wherein the RUM statistics are 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.

15. A cloud service executed on a plurality of nodes of a cloud-based system, each of the plurality of nodes including at least one processor, wherein the cloud-based system is communicatively coupled to a plurality of user devices and is configured to:

communicate with the plurality of user devices, wherein each user device is associated with a user from an organization of a plurality of organizations, and wherein each user device includes a plugin or browser extension installed thereon,

provide configuration information to any of the plurality of user devices where the configuration information includes a plurality of domains to be monitored by the plugin or browser extension, wherein the plugin or browser extension is configured to perform inline monitoring and/or determine real user monitoring (RUM) statistics when a given user device accesses one of the plurality of domains, thereby allowing an admin of the organization to configure any domain or list of domains to be monitored by the plugin to calculate Real User Monitoring (RUM) statistics for specified domains and push calculated statistics for analysis that the organization can view, and

receive the RUM statistics from any of the plugin or browser extension, and a connector application executing on the plurality of user devices.

16. The cloud service of claim 15 , wherein the cloud service is further configured to:

periodically request the RUM statistics from the any of the plurality of user devices, wherein the any of the plurality of user devices are configured to store associated RUM statistics locally.

17. The cloud service of claim 15 , wherein the cloud service is further configured to:

obtain measurements based on synthetic monitoring and combine the RUM statistics with the measurements based on synthetic monitoring.

18. The cloud service of claim 15 , wherein the cloud service is further configured to:

analyze and combine the RUM statistics, and

display analytics associated with the analyzed and combined RUM statistics.

19. The cloud service of claim 15 , wherein the plurality of domains include a list of domains determined by an organization associated with a user of the user device.

20. The cloud service of claim 15 , wherein the RUM statistics are 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2023
From: AHER, VAIBHAV; MAZBOUDI, KHAIREDDINE; KAMATH, SANDEEP; DEVARAJAN, SRIKANTH; BALAIAH, CHAKKARAVARTHY PERIYASAMY
To: ZSCALER, INC.
Reel/Frame 063051/0555 →
Continuity (6)
Continuation 17498037 · Oct 11, 2021
Continuation In Part 16798952 · Feb 24, 2020
Continuation In Part 16284106 · Feb 25, 2019
Continuation In Part 16284202 · Feb 25, 2019
Continuation In Part 16284073 · Feb 25, 2019
Related Publication 20230385364A1 · Nov 30, 2023
References Cited (58)
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 · 2016 [cited by examiner]
US 9569195B2 · Schekochikhin · 2017 [cited by examiner]
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 · 2017 [cited by examiner]
US 9621668B2 · Kamath et al. · 2017 [cited by applicant]
US 9760283B2 · Kalipatnapu · 2017 [cited by examiner]
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 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]