SAP/neonbee

[Bug]: If a HealthCheck fails the check disappears in the results (non-clustered) or the whole request fails (clustered)

Opened this issue · 0 comments

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

NeonBee can't handle failing HealthChecks.

Local
In non-clustered mode the method getLocalHealthCheckResults is called which simply omits failed HealthChecks.

...
asyncCheckResults.stream().filter(Future::succeeded)
...

Cluster
In clustered mode the method collectHealthCheckResults is called which sends requests to all HealthCheckVerticles. But as soon as one HealthCheck fails the HealthCheckVerticle will respond with a failure, because a AsyncHelper.allComposite collector is used to collect the results [1].

[1]

return AsyncHelper.allComposite(checkList).map(v -> new JsonArray(

Expected Behavior

  1. If a HealthCheck fails, I should see this in the result.
  2. If a HealthCheck fails, I should see the results of other HealthChecks.
  3. HealthCheckVerticle.retrieveData(..) should re-use getLocalHealthCheckResults to remove code redundancy.

Steps To Reproduce

No response

Environment

- OS:
- Java:
- NeonBee:

Relevant log output

No response

Anything else?

No response