-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Create health check / readiness endpoint #46984
Comments
Pinging @elastic/kibana-operations |
ES is tracking the addition of a readiness check here |
Pinging @elastic/kibana-platform (Team:Platform) |
Maybe it could just piggyback on /api/status and have an additional argument for load-balancing use where the HTTP code will be non-200 upon yellow or red. I understand the general desire to honor the HTTP status for its original purpose, but smarter endpoints that can be used for load-balancing allow customers to route users away from unhealthy Kibana nodes. Maybe a toggle can give us the best of both worlds? Then if the LB is skipping a node you can still troubleshoot by hitting /api/status to look at the detailed response. |
As the endpoint should be accessible as fast as possible, we would probably need to also add it to the 'notReady' internal server: kibana/src/core/server/http/http_service.ts Line 179 in 7002250
|
The @elastic/kibana-alerting-services team recently implemented logic to update the status to red when task-manager is misbehaving. I think we should be cautious when creating this API to make sure it doesn't result in a load-balancer taking a Kibana instance offline just because a single plugin is partially unavailable. Especially since Kibana has so many of the UIs that are helpful for diagnosing the health of the stack. |
@kobelb, does setting a plugin status to red still force the status page, making Kibana un-usable? If so, I am wondering if task-manager using that lever is what should be changed. Tasks not working should be brought to the user's attention, but I am not sure it should make Kibana itself unusable, as it's often what's needed for the investigation. |
@tylersmalley based on my limited testing, it does not. I recall Kibana doing this at some point, but I'm not seeing it happen any longer. |
It doesn't. It doesn't really do anything by default if I remember correctly. We are supposed to provide utilities to block routes from red plugins, but it's not done atm. |
Next steps for this:
|
Copying over some of the use cases from duplicate issue #148511:
|
Closed by #159768 |
When users are deploying Kibana into production, they need an endoint the load-balancer can use to determine if the node should be in the pool. Up until now, folks have use the
/status
endpoint in conjunction withstatus.allowAnonymous
. This is not ideal, as it makes the status page public unless measures are taken to prevent access at the LB. We should create an endpoint for this purpose which uses the correct status codes.Implementation Scope
This endpoint should answer the operational question: "is this instance healthy enough to send HTTP traffic to it?"
In light of that, we should probably ignore any custom plugin statuses and only depend on:
Response format when unavailable
Response format when available
Related questions
status.allowAnonymous
?The text was updated successfully, but these errors were encountered: