Call Stack Sampling for Distributed Application Anomaly Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Monitoring distributed web applications is impractical due to the complexity of tracking performance across multiple machines, leading to inefficiencies in collecting and analyzing diagnostic data to identify performance issues.

Innovation Solution

A system that learns the behavior of each machine in a distributed network application, automatically collects diagnostic data by sampling threads, and reports anomalies to central controllers for processing and visualization, enabling efficient identification of performance issues across the distributed system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If diagnostic data is collected from each machine in a distributed web application, then performance monitoring accuracy is improved, but device complexity and resource consumption increase significantly

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoiddata collection complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts only the necessary diagnostic information (call stack samples, timing data, thread identifiers) from each machine rather than collecting complete system states. This selective extraction reduces data volume and collection complexity while maintaining sufficient accuracy for performance analysis.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The monitoring system is segmented into distributed agents on individual machines that independently collect local diagnostic data, which is then aggregated centrally. This segmentation allows parallel data collection across multiple machines without requiring coordinated complex collection protocols.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If detailed diagnostic data is collected to identify performance issues, then measurement precision is improved, but loss of time in data processing increases

Engineering Contradiction:
Improveperformance issue identification accuracyVSAvoiddata processing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system collects call stack samples at strategic intervals and for specific thread types rather than continuously monitoring all threads. This partial sampling approach provides sufficient information for identifying performance bottlenecks while reducing processing time compared to exhaustive data collection.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system pre-identifies potential performance issue patterns and collects diagnostic data specifically targeted at detecting these patterns. By preparing diagnostic criteria in advance and collecting only relevant data, the system reduces processing time while maintaining accurate performance issue identification.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If monitoring is implemented across distributed machines, then reliability of performance tracking is improved, but ease of operation deteriorates due to data volume

Engineering Contradiction:
Improveperformance tracking reliabilityVSAvoiddata analysis ease
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary analysis layer that aggregates call stack samples from multiple machines and automatically correlates timing data across the distributed system. This intermediary processing transforms raw distributed data into unified performance insights, making the system reliable for tracking distributed transactions while keeping operation simple for users.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9077610B2Performing call stack sampling
Publication Date: 2015.07.07 CISCO TECHNOLOGY INC
  • US9077610B2 patent drawing
  • US9077610B2 patent drawing
  • US9077610B2 patent drawing

AI summary

The present technology may determine an anomaly in a portion of a distributed business application. Data can automatically be captured and analyzed for the portion of the application associated with the anomaly. By automatically capturing data for just the portion associated with the anomaly, the present technology reduces the resource and time requirements associated with other code-based solutions for monitoring transactions. A method for sampling an application thread to monitor a request may begin with detecting a diagnostic event with respect to the processing of a request. A thread call stack associated with the request may be sampled in response to detecting the diagnostic event. A state of the call stack may be stored with timing information based on the sampling. The call stack state and timing information may be transmitted to a remote server.