Stroom proxy `/healthcheck` reports unhealthy if feed status can't be queried
See original GitHub issueBackground
If a Stroom proxy cannot query the feed status from the target Stroom cluster (for instance, Stroom is down or the API key isn’t valid), /healthcheck
reports as unhealthy (HTTP status code > 200
). In Kubernetes deployments this will usually result in the proxy container being killed, as status codes >= 400 are considered unhealthy, which causes readiness and liveness probes to fail.
The intended behaviour for a store proxy is for it to be able to store events for a while, regardless of of the state of the target Stroom cluster. This implies that /healthcheck
should report healthy if the proxy is configured in store mode and is capable of receiving and storing data.
Recommended change
The proxy healthcheck logic should be amended to report status 200
(healthy) if store mode is enabled and optionally, check for the ability to write to the local store.
Issue Analytics
- State:
- Created a year ago
- Comments:5 (5 by maintainers)
Top GitHub Comments
@at055612 Thanks, this is working as expected. FYI healthcheck URI I used is:
/proxyAdmin/filteredhealthcheck?deny=stroom.proxy.app.forwarder.ForwarderDestinationsImpl,stroom.proxy.app.handler.RemoteFeedStatusService
.I’m now able to take Stroom down for maintenance and have the proxy remain active, receiving and buffering events.
Fixed in > 7.0-beta.200