Dynamic Product Usage Tree Visualization from Telemetry

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Real-time application usage monitoring primarily focuses on technical aspects, neglecting how users interact with applications, leading to suboptimal execution paths and retention of unused features in software applications.

Innovation Solution

Generating path execution trees based on telemetry data, including object executions and timestamps, to visualize and analyze how users interact with applications, identifying popular features and optimizing application usage without modifying existing application code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If application monitoring focuses on technical aspects (reads, writes, throughput), then technical performance data is obtained, but user interaction information is lost

Engineering Contradiction:
Improvetechnical performance measurementVSAvoiduser interaction information
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent combines technical performance monitoring with user interaction tracking by integrating object execution monitoring into the application. This merging allows simultaneous collection of both technical metrics (reads, writes, throughput) and user behavior data (object execution sequences, usage paths) through a unified monitoring system that observes object pair executions without requiring separate monitoring mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If telemetry monitoring is implemented without modifying existing application code, then deployment speed is improved, but monitoring capability may be limited

Engineering Contradiction:
Improvedeployment speedVSAvoidmonitoring capability
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces a telemetry monitoring module as an intermediary component that sits between the application objects and the external monitoring system. This mediator captures object execution information, timestamps, and usage patterns by intercepting object pair executions internally, enabling comprehensive monitoring capability while maintaining zero or minimal modification to the existing application codebase and achieving rapid deployment.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If comprehensive object execution tracking is implemented, then user usage patterns are identified, but data processing complexity increases

Engineering Contradiction:
Improveuser usage pattern informationVSAvoiddata processing complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The patent extracts only the essential and relevant information from comprehensive object execution tracking data - specifically focusing on object pair sequences, execution timestamps, and usage paths. By extracting and prioritizing these key elements while filtering out redundant detailed execution data, the system identifies user usage patterns effectively while managing data processing complexity through selective information extraction rather than processing all raw execution data.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11526898B2Dynamic visualization of product usage tree based on raw telemetry data
Publication Date: 2022.12.13 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11526898B2 patent drawing
  • US11526898B2 patent drawing
  • US11526898B2 patent drawing

AI summary

Aspects of the present disclosure relate to the visualization of product usage utilizing telemetry data associated with the product. More specifically, a first object identifier associated with an object, such as a method, function, or other portion of code, may be provided as part of the telemetry data together with an execution time stamp. A second object identifier may also be received, where the second object identifier is associated with object execution subsequent to the first object. Based on the first and second object identifier, an object pair may be determined and graphed at a path execution tree. In some instances, the object pairs may be filtered in accordance with a number of occurrences within a certain period of time, where a high number of occurrences is indicative of an intended path of one or more users.