Replies: 1 comment
-
|
Our general recommendation for HA is to give HyperDX one stable endpoint and let the infrastructure layer handle failover across replicas. On Kubernetes (sounds like your setup): a Service in front of your ClickHouse StatefulSet already provides a single DNS name with health-checked failover across ready replicas — HyperDX only needs that one endpoint. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
Currently, HyperDX accepts a single ClickHouse endpoint. If that endpoint becomes unavailable (for example, due to a replica failure or network issue), HyperDX loses connectivity until the endpoint is updated manually.
Would it make sense to support configuring multiple ClickHouse endpoints with automatic failover?
Motivation
In my organization on production environments, ClickHouse is commonly deployed with replicas for high availability.
While many deployments place a load balancer or proxy (such as chproxy, HAProxy, or a cloud load balancer) in front of ClickHouse, not every deployment does.
Supporting multiple endpoints directly in HyperDX could improve resilience for self-hosted users and smaller deployments where introducing another infrastructure component isn't desirable.
Proposed Configuration
For example:
CLICKHOUSE_URLS:
or
CLICKHOUSE_URLS=http://replica-1:8123,http://replica-2:8123,http://replica-3:8123
Expected Behavior
Attempt to connect to the first endpoint.
If it becomes unavailable, automatically switch to the next healthy endpoint.
Periodically retry the preferred endpoint (optional).
Optionally support different strategies in the future (priority order, round-robin, etc.).
Questions
Is this something the project would consider supporting?
Or is the expectation that high availability should always be handled by an external proxy/load balancer?
Have other users requested similar functionality?
If this aligns with the project's direction, I'd be interested in working on an implementation.
Beta Was this translation helpful? Give feedback.
All reactions