smallrye / smallrye-health

Home Page:https://smallrye.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add health registry support

xstefank opened this issue · comments

API tracked in spec issue - eclipse/microprofile-health#247

Is exposing a registry the preferred option?

Would it expose the ability for user applications to retrieve health checks?

Would a builder API be more appropriate?

I have the code almost ready for injection similar to metric registry in metrics.

Users will not see all checks through the registry. Not required by the spec. However, in SR users can inject SRHealthRegistry to get all checks.

The idea is to add/remove checks dynamically so I don't see how builder would be appropriate. Can you give an example?

What's the use case for being able to remove checks?

I think that's what I'm not grokking

Well, judging by the upstream issue, you can for instance exchange client protocol dynamically. Or something like I am dependent on service A when deployed but this is no longer true after A finishes its processing so it's unnecessary to continue checking its availability, even maybe dangerous if the service A is killed after its finished?

TBH I don't understand the use case that is being described.

I think it needs to be a lot clearer as to the use case to determine an appropriate solution.

For instance, maybe the right approach is a separate API to "de-register" through CDI Events, or the like, without exposing the health checks as a registry

The main use case appears to be multi-tenet usage, which I think opens a whole other set of issues with MP generally if it's "multi tenet"

@kenfinnigan however, the spec discussion isn't concluded in this sense. How should we proceed with this as an experimental API?

I'm not sure there's a critical use case to be addressed at present, so I would be inclined to not do anything for it

but that doesn't solve the issue which is proposed in the specification. I would like to keep this open until the spec issue is resolved in one way or the other.