For balancing the load and distributing access to the ADQM database, you can use Chproxy. It is an HTTP proxy that can:
evenly distribute queries between all nodes of the ADQM cluster (all nodes are considered equal);
monitor health of cluster nodes and prevent from sending requests to unavailable nodes;
limit HTTP access by a list of allowed IP addresses/IP subnet masks;
authorize users safely — Chproxy can map users sending requests to users of the ADQM cluster without exposing real usernames and passwords used in ADQM.
The Enterprise edition of ADQM includes the Chproxy service (starting with version 126.96.36.199.1.b1) that you can install to an ADQM cluster as any other service. To do this, follow the steps below:
Configure Chproxy via ADCM
You can configure paramеters of the Chproxy service in the corresponding window of the ADCM web interface. The Configure services article includes detailed instructions on how to access this window.
The following parameters are available for the Chproxy service:
Listen port— port to listen for HTTP requests (the default is
Allowed networks— list of allowed networks. To define a network, use IP address or IP subnet mask (the
127.0.0.1value is added to the list by default).
Proxy wildcarded users:
List of user names— list of values used as prefixes in names of wildcarded users that look like
prefix_*patterns. For example, if the
analystitem is added to this list, the
analyst_*pattern is specified. In this case, Chproxy will not authenticate users whose names match this pattern (for example,
analyst_john) — it will send user credentials from incoming requests to ADQM intact.
Note that an ADQM user can be created via the CREATE USER query, for example:
CREATE USER 'analyst_john' IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'test';
ADQM cluster configuration:
Interval— interval for checking all cluster nodes for availability (the default is
Timeout— waiting time of response from cluster nodes (the default is
These parameters are used for checking health of cluster nodes. Chproxy service components send a health check request to all nodes of the ADQM cluster at a frequency specified by the
Intervalparameter. If this request does not receive a response from some node of the cluster within the time specified by the
Timeoutparameter, Chproxy will stop sending queries to this node.