Skip to content

Latest commit

 

History

History
97 lines (56 loc) · 5.53 KB

File metadata and controls

97 lines (56 loc) · 5.53 KB
graph LR
    InfluxDBClient["InfluxDBClient"]
    Request_Dispatcher["Request Dispatcher"]
    Data_Writer["Data Writer"]
    Query_Executor["Query Executor"]
    Result_Parser["Result Parser"]
    Schema_Metadata_Manager["Schema/Metadata Manager"]
    Error_Handling["Error Handling"]
    InfluxDBClient -- "orchestrates operations of" --> Request_Dispatcher
    InfluxDBClient -- "orchestrates operations of" --> Data_Writer
    InfluxDBClient -- "orchestrates operations of" --> Query_Executor
    InfluxDBClient -- "orchestrates operations of" --> Result_Parser
    InfluxDBClient -- "orchestrates operations of" --> Schema_Metadata_Manager
    InfluxDBClient -- "integrates with" --> Error_Handling
    Data_Writer -- "utilizes" --> Request_Dispatcher
    Query_Executor -- "utilizes" --> Request_Dispatcher
    Request_Dispatcher -- "integrates with" --> Error_Handling
    Query_Executor -- "utilizes" --> Result_Parser
    Schema_Metadata_Manager -- "utilizes" --> Query_Executor
    Error_Handling -- "processes errors from" --> Request_Dispatcher
Loading

CodeBoardingDemoContact

Details

Analysis of the InfluxDB Client Core subsystem components and their relationships.

InfluxDBClient

The primary interface and facade for interacting with the InfluxDB API. It manages connection parameters (host, port, database, SSL, timeout, retries, proxies, etc.) and orchestrates all high-level database operations. It embodies the "Facade" and "Connection/Client Management" patterns.

Related Classes/Methods:

Request Dispatcher

Handles the low-level HTTP/UDP communication with the InfluxDB server. This includes constructing URLs, setting headers, managing data compression (gzip), implementing retry logic for connection errors, and dispatching requests using the underlying requests.Session. It centralizes network communication, aligning with the "Data Access Object (DAO)" pattern for data interaction.

Related Classes/Methods:

Data Writer

Manages the process of ingesting data points into InfluxDB. This includes formatting data based on protocol (JSON or line protocol), handling batching of points, and selecting the appropriate communication protocol (HTTP or UDP). This directly corresponds to the "Data Writer" expected component.

Related Classes/Methods:

Query Executor

Executes InfluxDB queries and processes the results. It handles query parameters, bind parameters, epoch precision, and manages chunked responses. This component fulfills the "Query Executor" role.

Related Classes/Methods:

Result Parser

Responsible for parsing raw responses from InfluxDB, particularly for chunked queries, and converting them into structured ResultSet objects.

Related Classes/Methods:

Schema/Metadata Manager

Provides functionalities for managing database schemas, measurements, retention policies, users, and continuous queries. These operations are typically performed by constructing InfluxQL queries and leveraging the Query Executor.

Related Classes/Methods:

Error Handling

Standardizes and re-formats error messages received from the InfluxDB API, ensuring consistent error reporting across the client library by raising specific exceptions (InfluxDBServerError, InfluxDBClientError). This aligns with the "Exception Handling/Error Reporting" expected component.

Related Classes/Methods: