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
Analysis of the InfluxDB Client Core subsystem components and their relationships.
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:
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:
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:
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:
Responsible for parsing raw responses from InfluxDB, particularly for chunked queries, and converting them into structured ResultSet objects.
Related Classes/Methods:
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:
influxdb.client.InfluxDBClient:create_database:1-1000influxdb.client.InfluxDBClient:get_list_users:1-1000
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: