[infinispan-dev] Health check use cases

Sebastian Laskawiec slaskawi at redhat.com
Tue Jul 26 04:24:59 EDT 2016


Hey Tristan!

Comments inlined.

Thanks
Sebastian

On Tue, Jul 26, 2016 at 9:50 AM, Tristan Tarrant <ttarrant at redhat.com>
wrote:

> On 26/07/16 07:10, Sebastian Laskawiec wrote:
> > Dear Community,
> >
> > I'd like to ask you for help. I'm currently sketching a design for a
> > REST health check endpoint for Infinispan and I'm trying to imagine
> > possible use cases.
> The health-check should be implemented as an MBean initially, with the
> ability to expose it via alternative implementations later. The server
> RESTful endpoint should be registered with the management interface via
> a special handler.
>

Yes, I think it's a good idea. We could even use tools like Jolokia [1] to
expose MBeans through REST interface (it can be added to standalone.conf to
the bootstrap classpath). Alternatively we could use JDK embedded HTTP
Server [2].

The only restriction that comes into my mind is that we shouldn't allow
duplicated domains when exposing MBeans through REST interface. Otherwise
it will be very hard to construct proper paths for the endpoint.

[1] https://jolokia.org/
[2]
https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver/spec/com/sun/net/httpserver/HttpServer.html


> A cache and cachemanager's health is determined by a combination of
> parameters and we probably should allow for a user-pluggable checker. We
> already expose a number of statuses already, although obviously this
> would be an aggregate.
>

Could you please elaborate more on that? How do we expose this information?
Are you referring to Infinispan Stats [3]?

I also though about supporting queries somehow. An imaginary example from
the top of my head could look like the following:

http://$ISPN/_health?cluster.nodes=3&MyCacheManager.MyCache.status=DEGRADED
//<-- This would return 200 OK if we have 3 nodes and given cache is in
degraded mode.
http://$ISPN/_health?cluster.nodes=3&MyCacheManager.rebalance=IN_PROGRESS
//<-- Checks if we have 3 nodes and rebalance is in proress

[3]
https://github.com/infinispan/infinispan/tree/8.2.x/core/src/main/java/org/infinispan/stats


>
> >
> > Could you please give me a hand and tell me what functionalities are
> > important for you? Would you like to be able to check status per-cache
> > or maybe a red (not healthy), green (healthy), yellow (healthy,
> > rebalance in progress) cluster status is sufficient? What kind of
> > information do you expect to be there?
> I wouldn't want this to be overly complex: a simple OK, KO should be
> sufficient. Additional detail may be optionally present, but not a
> requirement.
>

I think we will need at least a 3rd state - yellow or something like this.
This would mean that a rebalance is in progress of a node is
joining/leaving. In other words - the cluster accepts requests but don't
touch the nodes!


>
>
> Tristan
>
> --
> Tristan Tarrant
> Infinispan Lead
> JBoss, a division of Red Hat
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20160726/2575f3e8/attachment-0001.html 


More information about the infinispan-dev mailing list