Is there an existing issue for this?
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
- If a HealthCheck fails, I should see this in the result.
- If a HealthCheck fails, I should see the results of other HealthChecks.
HealthCheckVerticle.retrieveData(..) should re-use getLocalHealthCheckResults to remove code redundancy.
Steps To Reproduce
No response
Environment
Relevant log output
No response
Anything else?
No response
Is there an existing issue for this?
Current Behavior
NeonBee can't handle failing HealthChecks.
Local
In non-clustered mode the method getLocalHealthCheckResults is called which simply omits failed HealthChecks.
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.allCompositecollector is used to collect the results [1].[1]
neonbee/src/main/java/io/neonbee/internal/verticle/HealthCheckVerticle.java
Line 58 in e852582
Expected Behavior
HealthCheckVerticle.retrieveData(..)should re-usegetLocalHealthCheckResultsto remove code redundancy.Steps To Reproduce
No response
Environment
Relevant log output
No response
Anything else?
No response