The ping health check done by TransportClient from the applications to the node is it as simple as establishing a TCP connection and checking or something more complex?
We use TCP load-balancer which distributes the connections from the TransportClient to multiple hosts behind the load-balancer. I suspect that ping connection from multiple hosts can map to a single host behind the load-balancer. So, ping may not suffice it's purpose I suppose untill and unless the node receiving all these connections again forwards it to the right node in the cluster, can this happen?
Another option is to have a custom check logic wherein I'll try to build a connection with the hosts behind the load-balancer on port 9300 by using 'nc' and if the connection is established test will pass. If it fails, I'll remove the hosts from the load-balancer.