Call Stack Sampling for Distributed Application Anomaly Detection
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If monitoring is implemented across distributed machines, then reliability of performance tracking is improved, but ease of operation deteriorates due to data volume
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.
Data Source
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.


