Tail-Based Trace Sampling for Instrumented Software Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for monitoring instrumented software through trace and span sampling are inefficient, as they often transmit and store unnecessary data, missing valuable error traces amidst a majority of error-free traces, and random sampling may not effectively identify configuration problems.

Innovation Solution

Implementing tail-based sampling that annotates spans with tags, selects traces based on error presence or trace duration, and uses a histogram to identify patterns and generate alerts for configuration issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all spans and traces are transmitted and stored for analysis, then complete monitoring coverage is achieved, but infrastructure cost increases significantly

Engineering Contradiction:
Improvemonitoring coverageVSAvoiddata volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the most valuable traces for transmission and storage by implementing tail-based sampling that identifies and selects traces containing errors or exceptional conditions. This extraction principle filters out the majority of normal, error-free traces and transmits only the critical subset that provides actionable insights, thereby reducing data volume while maintaining monitoring reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

2Quantity of substance

If random sampling is used to select traces for transmission, then data transfer volume is reduced, but error traces may be missed

Engineering Contradiction:
Improvedata transfer volumeVSAvoiderror trace detection
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The system implements feedback mechanisms where traces are evaluated based on their characteristics (error presence, duration, tags) and this feedback determines whether they should be transmitted. The sampling decision is not random but based on feedback from trace analysis, ensuring that error traces are captured while normal traces are filtered out, thus preventing information loss while reducing data transfer.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent changes the sampling parameter from random selection to tail-based selection criteria. By changing the selection parameter to focus on traces with specific characteristics (errors, long durations, specific tags), the system ensures that error traces are not missed while still reducing the overall data transfer volume compared to transmitting all traces.

Inventive Principle:
Principle #35Parameter changes

3Loss of information

If traces with specific features are selected through tail-based sampling, then valuable error traces are captured, but sampling complexity increases

Engineering Contradiction:
Improveerror trace captureVSAvoidsampling mechanism
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-defining sampling criteria and rules for identifying valuable traces before the actual sampling process. Tags are pre-configured to mark important trace characteristics, and sampling rules are established in advance to identify errors and exceptional conditions. This preliminary preparation simplifies the actual sampling execution while ensuring error traces are captured.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11775501B2Trace and span sampling and analysis for instrumented software
Publication Date: 2023.10.03 CISCO TECHNOLOGY INC
  • US11775501B2 patent drawing
  • US11775501B2 patent drawing
  • US11775501B2 patent drawing

AI summary

Embodiments of the present disclosure provide for trace and span sampling and analysis for instrumented software. Each span may be annotated with one or more tags that provide context about an executed task, such as a user instrumenting the software, a document involved in a request, an infrastructure element used in servicing a request, etc. A sampler may perform tail-based sampling of traces comprising spans. The sampler may select a portion of the traces having selected features and send them to an analyzer. The analyzer may receive the selected traces and determine whether the selected traces are indicative of configuration problems for the instrumented software. An alert may be generated based on identified configuration problems.