Dynamic Instrumentation Data Collection via Runtime Manifests

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional mechanisms for collecting instrumentation metrics in software products are inflexible and inefficient, often failing to provide sufficient information to diagnose performance issues or guide improvements, and they do not allow for trade-offs between data collection speed and user disruption.

Innovation Solution

A flexible software quality metric system that uses dynamic and adaptive techniques, where client computers receive manifests specifying which metrics to collect, from what sources, and how to calculate them, allowing for real-time adjustments without updating the software modules, thereby enabling faster diagnosis and improvement of software products.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional instrumentation data collection mechanisms are used, then the software product can be tested and basic metrics can be gathered, but the system lacks flexibility to adapt data collection strategies in response to performance issues and cannot provide sufficient information for effective diagnosis

Engineering Contradiction:
Improveflexibility of data collectionVSAvoidinsufficient diagnostic information
Core Design Contradiction:
Adaptability or versatilityVSLoss of information

Solution Approach 1:

The patent implements dynamic configuration of instrumentation data collection through manifests that can be updated at runtime without requiring software updates. The system transitions from static, pre-configured metrics collection to a dynamic model where the server can instruct client computers to collect different sets of instrumentation data based on detected performance issues, thereby improving adaptability while ensuring sufficient diagnostic information is gathered

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameters of data collection by using manifests that specify which instrumentation data to collect, from what sources, and how to calculate metrics. These manifest parameters can be dynamically adjusted by the server based on analysis of received metrics, allowing the system to adapt collection strategies and ensure sufficient diagnostic information without requiring software updates

Inventive Principle:
Principle #35Parameter changes

2Loss of information

If more instrumentation data is collected from each computer to improve diagnosis, then more information is available for analysis, but the processing burden and disruption to users increases

Engineering Contradiction:
Improvecompleteness of diagnostic dataVSAvoiduser disruption
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent applies partial action by collecting instrumentation data selectively rather than comprehensively from all sources at all times. The server analyzes received metrics and determines whether additional specific instrumentation data is needed for diagnosis, instructing only those specific data points to be collected. This approach ensures sufficient diagnostic information while minimizing user disruption by avoiding unnecessary data collection

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system implements feedback loops where the server receives instrumentation metrics from client computers, analyzes them for performance issues, and based on that analysis, determines whether additional instrumentation data should be collected. This feedback mechanism ensures that data collection is driven by actual diagnostic needs rather than collecting excessive data routinely, balancing completeness with minimal user disruption

Inventive Principle:
Principle #23Feedback

3Adaptability or versatility

If instrumentation metrics collection is updated to collect different metrics, then the system can identify new sources of improvement, but the software modules themselves must be updated which slows down the process

Engineering Contradiction:
Improveability to collect new metricsVSAvoidtime to update collection process
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent extracts the data collection configuration from the software product code itself and places it in separate manifest files that can be independently updated and distributed. This separation allows the instrumentation data collection parameters to be modified without requiring updates to the software modules, enabling rapid adaptation to collect new metrics or modify collection strategies simply by distributing updated manifests to client computers

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The manifest acts as an intermediary between the server and the instrumentation data collection process. Instead of modifying software modules to change what data is collected, the server communicates desired collection parameters through manifests, which then mediate the actual data collection process. This intermediary mechanism enables flexible updates to metrics collection without requiring software updates, significantly reducing the time needed to adapt data collection strategies

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8972787B2Dynamic collection of instrumentation data
Publication Date: 2015.03.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8972787B2 patent drawing
  • US8972787B2 patent drawing
  • US8972787B2 patent drawing

AI summary

A flexible system for collecting and reporting instrumentation metrics relating to performance of a software product. Computing devices that execute the software product receive a manifest that specifies the manner in which instrumentation metrics are collected and reported, including what instrumentation metrics are collected. Based on the manifest, an instrumentation metrics client associated with a software product may retrieve instrumentation data from a software product or other sources. The metrics client may then generate one or more instrumentation metrics, based on the instrumentation data, in accordance with instructions in the manifest. The metrics client may then take one or more actions based on the instrumentation metrics and the manifest, such as reporting the information to an instrumentation metrics server for aggregation and analysis by the metrics server or performing escalation actions that can modify the metrics collected and reported.