Skip to content

Latest commit

 

History

History
107 lines (61 loc) · 6.35 KB

File metadata and controls

107 lines (61 loc) · 6.35 KB
graph LR
    Client_Initializer["Client Initializer"]
    Public_Capture_Interfaces["Public Capture Interfaces"]
    Exception_Hook_Integrator["Exception Hook Integrator"]
    Event_Capture_Orchestrator["Event Capture Orchestrator"]
    Context_Manager["Context Manager"]
    Event_Data_Builder["Event Data Builder"]
    Event_Dispatcher["Event Dispatcher"]
    Remote_Transmitter["Remote Transmitter"]
    Client_Initializer -- "configures" --> Context_Manager
    Public_Capture_Interfaces -- "routes events to" --> Event_Capture_Orchestrator
    Exception_Hook_Integrator -- "routes exceptions to" --> Event_Capture_Orchestrator
    Event_Capture_Orchestrator -- "directs to construct payload" --> Event_Data_Builder
    Context_Manager -- "provides contextual data to" --> Event_Data_Builder
    Event_Capture_Orchestrator -- "passes payload to" --> Event_Dispatcher
    Event_Dispatcher -- "delegates transmission to" --> Remote_Transmitter
    Remote_Transmitter -- "reports status to" --> Event_Dispatcher
Loading

CodeBoardingDemoContact

Details

The raven-python client's core functionality resides within the raven.base subsystem, primarily orchestrated by the Client class. This subsystem manages the entire lifecycle of event reporting, from initial configuration and context management to event capture, data processing, and remote transmission. The Client Initializer sets up the client and its DSN, while Public Capture Interfaces and the Exception Hook Integrator provide the entry points for event and exception capture. The Event Capture Orchestrator (the Client itself) coordinates the flow, leveraging the Context Manager for enriching event data and the Event Data Builder for structuring the payload. Finally, the Event Dispatcher prepares the data for sending, delegating the actual network communication to the Remote Transmitter component, which handles the interaction with the Sentry server.

Client Initializer

Responsible for the initial setup of the Raven client, including DSN configuration, transport setup, and the establishment of system-wide hooks.

Related Classes/Methods:

Public Capture Interfaces

These are the primary public entry points that allow applications to explicitly capture different types of events (e.g., messages, exceptions).

Related Classes/Methods:

Exception Hook Integrator

Facilitates automatic capture of unhandled exceptions by integrating with Python's exception handling mechanisms.

Related Classes/Methods:

Event Capture Orchestrator

The central control point within the Client that manages the entire event capture workflow, from receiving capture requests to delegating tasks for data processing and transmission.

Related Classes/Methods:

Context Manager

Provides and manages contextual data (e.g., user information, HTTP request details, custom tags, breadcrumbs) that enriches the captured events.

Related Classes/Methods:

Event Data Builder

Assembles raw event data into a structured, Sentry-compatible message payload, applying necessary transformations and processors.

Related Classes/Methods:

Event Dispatcher

Manages the encoding (serialization) of the event message and delegates the actual transmission to the remote sender. This involves RemoteConfig which holds transport details.

Related Classes/Methods:

Remote Transmitter

Handles the actual network communication to send the encoded event payload to the Sentry server, including retry logic and error handling for network failures. This is abstracted by the TransportRegistry and concrete transport implementations.

Related Classes/Methods: