Add support of MYSQL health check
- Dominant language
- C++
- Stars
- 28.9k
- Forks
- 5.6k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 437
Description
*Title*: *Add MYSQL health check*
*Description*:
Currently, Envoy seems only support HTTP, TCP and REDIS (as an extension) type of health check when positively checking upstream endpoint's healthiness. In HAProxy, it has built-in [mysql-check](https://www.haproxy.com/documentation/hapee/1-9r1/traffic-management/health-checking/#check-a-mysql-service) to perform a simple auth test or mysql handshake packet as the health check approach.
The advantages of having `MYSQL` health check is to better exclude replicas during DB failover and/or overloaded scenario. TCP health check will be passed as long as the port is opened by mysql, but it won't sufficient to rule out those _unready_ or _unhealthy_ replicas. [Outlier ejection](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/outlier) seems only work for HTTP traffic and cannot help so much under this case.
Actually, there are some work/proposals of supporting mysql relevant area in the community already, see below. I wonder whether it makes sense for community to consider adding MYSQL health check support as another extension. Hopefully, it is not very controversial.
Happy to discuss more.
[optional *Relevant Links*:]
https://github.com/envoyproxy/envoy/issues/3501
https://github.com/envoyproxy/envoy/pull/3502
https://github.com/envoyproxy/envoy/pull/4975
Contributor guide
Assessment
This issue has not been assessed yet.