Is there anything that a load balancer can look at that will tell it Kibana is really actually properly ready for use by a human being and not potentially route someone to a Kibana instance that has just been started up and is still in a state where it'll show a human an error message?
Just doing a http request to / is no use because it will sometimes return a 200 status yet a web browser displays "Kibana did not load properly. Check the server output for more information".
Looking for the absence of the message "Kibana did not load properly. Check the server output for more information" is no use because that message is in the response body even when the UI is ready for use.
Parsing /api/status is no use because that says everything is green even before the UI is ready for use.
Any useful UI element the existence of which would indicate the UI is ready for use seems to be thus invisible to anything but human eyes as they come in to existence by way of JavaScript rather than being in the response body.
Checking the root is what most people are doing these days. The "Kibana did not load properly" error is actually a client-side error when an asset doesn't load.
So do most people just hope that their load balancer doesn't route people to a Kibana instance that isn't ready for use?
Sure, but it can be the case that the message appears because Kibana hasn't yet started up to the point where it can be used. A user can encounter that error, wait a few seconds, refresh and get a usable Kibana. And it would be nice if was possible to stop a load balancer sending someone to a Kibana instance that displays that error only because Kibana hasn't quite started up properly yet. Maybe some users will see the error and think "maybe if I hit refresh it'll work" but many will see it and then tell whoever manages Kibana that it's broken.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.