IP Library Granted Patent US 11,783,084
Granted Patent B2
US 11,783,084 · App. 17/351,874 · Granted Oct 10, 2023

Sampling of telemetry events to control event volume cost and address privacy vulnerability

Inventors: Dhruv Joshi (Bellevue, WA); Ajanta Mahato (Snoqualmie, WA); Dolly Sobhani (Seattle, WA); Brian Eugene Kihneman (Bellevue, WA); Siddharth Dahiya (Kenmore, WA); Heron Arzaquel Anzures Reyes (Bellevue, WA); Matthew Joseph Koscumb (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F21/6245H04L9/0643H04L67/12
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 11,783,084
App. No.
17/351,874
Granted
Oct 10, 2023
Kind
B2
Abstract

A system and method for sampling telemetry events are provided. The method includes receiving, by a cloud-based server, a plurality of telemetry events, related to an application, from a plurality of client devices; generating, by the cloud-based server, a sampling model for collecting a telemetry event based on the plurality of telemetry events, where the sampling model defines under what conditions the telemetry event is to be reported by a client device; generating, by the cloud-based server, an instruction for determining whether or not to report an incoming same telemetry event by the client device based on the sampling model; and providing, by the cloud-based server, the instruction to the client device, to allow the client device to determine whether or not to report the incoming same telemetry event based on the instruction.

Claims (55)

1. A system for sampling telemetry events, comprising:

a processor; and

a memory, coupled to the processor, configured to store executable instructions, wherein the instructions, when executed by the processor, cause the processor to:

receive a plurality of telemetry events, related to an application, from a plurality of client devices;

generate a sampling model for collecting a telemetry event based on the plurality of telemetry events, wherein the sampling model defines under what conditions the telemetry event is to be reported by a client device;

generate an instruction for determining whether to report an incoming same telemetry event by the client device based on the sampling model; and

provide the instruction to the client device, to allow the client device to determine whether to report the incoming same telemetry event based on the instruction.

2. The system of claim 1 , wherein, to generate the sampling model and the instruction, the instructions further cause the processor to:

determine whether a statistically significant insight is obtained for the telemetry event based on the plurality of telemetry events;

if the statistically significant insight is obtained for the telemetry event, generate a corresponding instruction to instruct the client device to discard new instances of the incoming same telemetry event.

3. The system of claim 1 , wherein, to generate the sampling model and the corresponding instruction, the instructions further cause the processor to:

determine whether a statistically significant insight is obtained for the telemetry event based on one or more insights received from one or more of the plurality of client devices;

if the statistically significant insight is obtained for the telemetry event, generate a corresponding instruction to instruct the client device to discard the incoming same telemetry event.

4. The system of claim 1 , wherein, to generate the sampling model for collecting the telemetry event based on the plurality of telemetry events, the instructions further cause the processor to:

dynamically update the generated sampling model based on additional telemetry events reported by the plurality of client devices.

5. The system of claim 4 , wherein:

to generate the sampling model, the instructions further cause the processor to generate a client-version model for the plurality of client devices; and

to generate and provide the instruction to the client device, the instructions further cause the processor to provide the client-version model to the client device, to allow the client device to determine whether to report the incoming same telemetry event based on the client-version model.

6. The system of claim 1 , wherein the instructions further cause the processor to:

determine that one of the plurality of telemetry events logs sensitive data; and

ping a client device that has reported the one of the plurality of telemetry events not to collect a same telemetry event that logs the sensitive data.

7. The system of claim 1 , wherein the instructions further cause the processor to:

determine that one of the plurality of telemetry events logs sensitive data; and

ping a client device that has reported the one of the plurality of telemetry events to hash a field that logs the sensitive data before reporting a same telemetry event that logs the sensitive data.

8. The system of claim 1 , wherein the instructions further cause the processor to:

determine that one of the plurality of telemetry events logs sensitive data; and

ping a client device that has reported the one of the plurality of telemetry events to report a same telemetry event that logs the sensitive data through a pipeline that has a higher-level security.

9. A method for sampling telemetry events, comprising:

receiving, by a cloud-based server, a plurality of telemetry events, related to an application, from a plurality of client devices;

generating, by the cloud-based server, a sampling model for collecting a telemetry event based on the plurality of telemetry events, wherein the sampling model defines under what conditions the telemetry event is to be reported by a client device;

generating, by the cloud-based server, an instruction for determining whether to report an incoming same telemetry event by the client device based on the sampling model; and

providing, by the cloud-based server, the instruction to the client device, to allow the client device to determine whether to report the incoming same telemetry event based on the instruction.

10. The method of claim 9 , wherein generating the sampling model and the instruction comprises:

determining, by the cloud-based server, whether a statistically significant insight is obtained for the telemetry event based on the plurality of telemetry events;

if the statistically significant insight is obtained for the telemetry event, generating a corresponding instruction to instruct the client device to discard new instances of the incoming same telemetry event without reporting the incoming same telemetry event to the cloud-based server.

11. The method of claim 9 , wherein generating the sampling model and the instruction comprises:

determining, by the cloud-based server, whether a statistically significant insight is obtained for the telemetry event based on one or more insights received from one or more of the plurality of client devices;

if the statistically significant insight is obtained for the telemetry event, generating a corresponding instruction to instruct the client device to discard the incoming same telemetry event without reporting the incoming same telemetry event to the cloud-based server.

12. The method of claim 11 , wherein each of the one or more insights is obtained by a corresponding client device through aggregating a plurality of same telemetry events that occurred on the corresponding client device.

13. The method of claim 9 , wherein generating the sampling model for collecting the telemetry event based on the plurality of telemetry events further comprises dynamically updating the generated sampling model based on additional telemetry events received by the cloud-based server.

14. The method of claim 9 , wherein

generating the sampling model further comprises generating a client-version model for the plurality of client devices; and

generating and providing the instruction to the client device further comprises providing the client-version model to the client device, to allow the client device to determine whether to report the incoming same telemetry event based on the client-version model.

15. The method of claim 14 , wherein the client-version model is generated based on patterns of data associated with the telemetry event.

16. The method of claim 15 , wherein the patterns of data correspond to one or more of a locale, country, device type, build version, and time taken to perform an action associated with the telemetry event.

17. The method of claim 9 , further comprising:

determining, by the cloud-based server, that one of the plurality of telemetry events logs sensitive data; and

pinging a client device that has reported the one of the plurality of telemetry events not to collect a same telemetry event that logs the sensitive data.

18. The method of claim 9 , further comprising:

determining, by the cloud-based server, that one of the plurality of telemetry events logs sensitive data; and

pinging a client device that has reported the one of the plurality of telemetry events to hash a field that logs the sensitive data before reporting a same telemetry event that logs the sensitive data.

19. The method of claim 18 , wherein the field that logs the sensitive data is hashed using a salt that is only available in a client boundary.

20. The method of claim 19 , further comprising:

determining, by the cloud-based server, that one of the plurality of telemetry events logs sensitive data; and

pinging a client device that has reported the one of the plurality of telemetry events to report a same telemetry event that logs the sensitive data through a pipeline that has a higher-level security.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2021
From: JOSHI, DHRUV; MAHATO, AJANTA; SOBHANI, DOLLY; KIHNEMAN, BRIAN EUGENE; DAHIYA, SIDDHARTH; ANZURES REYES, HERON ARZAQUEL; KOSCUMB, MATTHEW JOSEPH
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 056588/0082 →
Continuity (1)
Related Publication 20220405419A1 · Dec 22, 2022
Cited By (1)
US 12,657,098