Dynamic Entity Tracing Configuration for Manageable Debug Logs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tracing in software development generates large, unmanageable log files that can introduce errors and require time-consuming filtering, particularly in high-performance network devices where only specific entities are of interest.
Innovation Solution
Implement selective tracing using dynamic configuration to enable tracing only for specific entities of interest, with granular control over tracing activation and deactivation through global tracing configuration and scope-scoped objects.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of information
If comprehensive tracing is implemented to monitor all entities during code execution, then debugging information completeness is improved, but trace file size grows to unmanageable levels
Solution Approach 1:
The patent segments the tracing function by introducing entity-specific tracing configuration. Instead of uniformly tracing all entities, the system divides tracing into selective segments based on entity identifiers. Each entity can be independently configured for tracing, allowing the system to trace only relevant entities while ignoring others, thus maintaining debugging information quality without generating unmanageable log volumes.
Solution Approach 2:
The patent applies local quality by making tracing configuration entity-specific rather than global. The tracing system assigns different tracing properties to different entities based on their identifiers. This allows critical entities to be traced in detail while non-critical entities are excluded, ensuring that tracing resources are concentrated on areas of interest and trace file size is controlled.
2Ease of operation
If tracing is enabled for all entities, then code execution monitoring capability is improved, but system performance deteriorates due to processing overhead
Solution Approach 1:
The patent segments the monitoring capability by entity identifier, allowing the system to evaluate and trace only selected entities. The tracing decision is made at the entity level rather than applying monitoring to all entities uniformly. This segmentation reduces the total number of trace evaluations and log operations, thereby maintaining monitoring capability for critical entities while reducing overall system overhead.
Solution Approach 2:
The patent implements partial action by enabling tracing for only a subset of entities that are deemed relevant based on their identifiers. Instead of applying tracing excessively to all entities, the system selectively applies tracing where needed. This partial application of tracing maintains sufficient monitoring capability for debugging while avoiding the performance penalty of universal tracing.
3Loss of information
If trace points are inserted throughout the code to capture all events, then tracing coverage is improved, but device complexity increases
Solution Approach 1:
The patent extracts the tracing decision logic from the business code by introducing a separate entity identifier-based filtering mechanism. The trace points remain in the code, but their activation is extracted and controlled by an external configuration system that evaluates entity identifiers. This separation allows comprehensive trace point placement for potential coverage while using the extraction principle to control actual tracing activation, thereby maintaining coverage capability without proportionally increasing active complexity.
4Ease of operation
If trace files are processed frequently to manage size, then trace file manageability is improved, but tracing availability deteriorates during processing
Solution Approach 1:
The patent applies the disposable principle by using lightweight, entity-specific trace filtering that operates in-memory without requiring heavy file processing operations. Instead of frequently processing and rotating large trace files, the system uses efficient in-memory filtering based on entity identifiers to prevent unnecessary trace data from being written in the first place. This approach makes trace management cheaper and faster, reducing the need for frequent file operations and maintaining tracing availability.
Data Source
AI summary
Selective tracing using dynamic tracing configuration is presented. According to various embodiments, tracing configuration data specifies entities to be traced through execution of tracing code in code blocks. When a code block is executed to process a particular entity it can be determined if tracing is enabled for that entity using this tracing configuration data. Based on that determination, a global tracing configuration may be configured such that the tracing code included in the code block may, or may not, be executed when processing that entity.


