I am trying to setup a load balancer correctly but I can hardly get any feedback from what is happening on Cloudflare Load Balancer.
All Pools and Origins are showen healthy.
I choose Dynamic Steering, but I do not know the result of Cloudflare pinging those servers and the preferred servers that Cloudflare choose for each region.
I currently have 3 pools:
pool_us-east-1 => origin_us-east-1
pool_us-east-2 => origin_us-east-2
pool_ap-southeast-1 => origin_ap-southeast-1
I do not get any traffic to us-east-2 (looking at my servers log because I do not have any feedback from Cloudflare about what is happening)
I tried this:
pool_us-east-1 => 1 origin_us-east-1 weight:0.5 AND 1 origin_us-east-2 weight:0.5
pool_us-east-2 => origin_us-east-2
pool_ap-southeast-1 => origin_ap-southeast-1
I still get no traffic to us-east-2
The weirdest part is that if I disable pool_us-east-1 (off) I still get the traffic to us-east-1…
Can anyone help with my issue?
I am wondering if there are any plans from Cloudflare to offer more visibility about what is happening with the load balancer traffic?
How are you testing and determining where visitor requests are being routed to ? Dynamic steering routes requests based on measure latency to the fastest cf load balancer pool as opposed to Geo steering which routes based on Cloudflare region serving the request. So with Dynamic steering, if origin_us-east-1 is faster than origin_us-east-2 for specific visitors, then cf load balancer will always route to origin_us-east-1.
As Cloudflare Load balancer configuration can be highly technical and we don’t have access to your configuration, it’s best to contact Cloudflare tech support to ask
Thank you for your answer.
I am looking at my servers log of my 3 servers to see which one get calls.
My Health checks are all green. They basically test a GET endpoint expecting 200 and a response containing the string value data.
I am not using pool as fail over it is more about directing traffic to the fastest endpoint.
You are right that is what I thought, us-east-1 is faster than us-east-2.
I decided to add us-east-1 as a 0.5 weighted origin of pool_us-east-1. In this case the traffic should be spread through those 2 origins without dynamic steering (I think).
I am frustrated that Cloudflare does not provide more insight about how traffic get redirected and about the health checks speed seen by Cloudflare. Cloudflare could display the result of querying those monitor from each region.
Moreover, the logs reaching the server does not tell me the user location and the route took by the load-balancer.
Cloudflare could offer a way to visualise the load balanced users. Even something as simple as filtering by a timestamp and seeing the percent of the traffic received by each pool would be helpful.
Maybe it is possible to get those information but I am just not aware on how to get them.
Thanks
You can also on your origin servers add a custom HTTP header tagging which server is used to serve the request.
Also check if Cloudflare zone analytics API has any info you can use Cloudflare API Documentation - I don’t use Cloudflare Load Balancer right now so can’t check myself. I only used it when it was early beta testing when it was non-gui/API only ~3yrs ago.
Maybe someone else here with current Load balancer experience can provide more insight. But definitely as cloudflare tech support too as they will know best.
Thanks for the pointer to Cloudflare zone analytics API I will try that.
I had an issue in my setup that caused traffic to keep going to us-east-1 but I fixed it.
I can now work on other things but I still thing that we should have more analytics about what is happening with the load balancer.
If anyone has a good curl command to query the zone analytics API for answering question like:
how much traffic got directed to pool1? to pool2?
how many users from the US got directed to pool1? to pool2?
what is the current response time from Cloudflare Northeast US to query my pool1 monitor? pool2 monitor?