graph LR
Event_Orchestrator["Event Orchestrator"]
Stack_Info_Extractor["Stack Info Extractor"]
Module_Version_Collector["Module Version Collector"]
Context_Provider["Context Provider"]
Data_Transformer["Data Transformer"]
Frame_Iterator_Helper["Frame Iterator Helper"]
Frame_Local_Variable_Retriever["Frame Local Variable Retriever"]
Frame_Attribute_Accessor["Frame Attribute Accessor"]
Event_Orchestrator -- "calls" --> Stack_Info_Extractor
Event_Orchestrator -- "calls" --> Module_Version_Collector
Event_Orchestrator -- "accesses" --> Context_Provider
Event_Orchestrator -- "invokes" --> Data_Transformer
Event_Orchestrator -- "utilizes" --> Frame_Iterator_Helper
Stack_Info_Extractor -- "calls" --> Frame_Local_Variable_Retriever
Stack_Info_Extractor -- "calls" --> Frame_Attribute_Accessor
Module_Version_Collector -- "provides data to" --> Event_Orchestrator
Context_Provider -- "provides contextual data to" --> Event_Orchestrator
Data_Transformer -- "receives data from" --> Event_Orchestrator
Frame_Iterator_Helper -- "is used by" --> Event_Orchestrator
Frame_Local_Variable_Retriever -- "is called by" --> Stack_Info_Extractor
Frame_Attribute_Accessor -- "is called by" --> Stack_Info_Extractor
The Event Orchestrator serves as the core component, initiating the event payload construction. It leverages the Context Provider to gather contextual data and the Module Version Collector for environment details. For stack trace information, the Event Orchestrator calls the Stack Info Extractor, which in turn relies on the Frame Local Variable Retriever and Frame Attribute Accessor to detail individual stack frames. Additionally, the Event Orchestrator utilizes the Frame Iterator Helper to process stack frames for application-specific path filtering. Finally, all collected data is passed to the Data Transformer for initial pre-processing before the event is finalized.
The central component (raven.base.build_msg) that orchestrates the entire process of constructing the raw event payload. It coordinates calls to other components to gather all necessary data points, such as stack traces, module versions, and contextual information.
Related Classes/Methods:
Responsible for extracting comprehensive details from stack frames, including local variables and code lines, which are essential for debugging and error analysis. (raven.utils.stacks.get_stack_info)
Related Classes/Methods:
Gathers version information for all installed Python modules, providing crucial context about the application's environment at the time of the event. (raven.base.get_module_versions)
Related Classes/Methods:
Manages and provides access to various contextual data (e.g., user information, HTTP request details, extra data, tags) that enrich the event payload. (raven.base.context)
Related Classes/Methods:
Performs initial, pre-processing transformations on the event data, shaping it into the required raw event structure before any deeper processing or sanitization occurs. (raven.events.transform)
Related Classes/Methods:
Provides a mechanism for iterating through stack frames, primarily used by the Event Orchestrator to determine if frames are "in-app" based on configured paths. (raven.base._iter_frames)
Related Classes/Methods:
Specializes in retrieving local variables from a given stack frame, used by the Stack Info Extractor. (raven.utils.stacks.get_frame_locals)
Related Classes/Methods:
Safely accesses attributes of stack frames, preventing potential errors during stack trace collection. (raven.utils.stacks._getitem_from_frame)
Related Classes/Methods: