[infinispan-dev] Health check use cases

Tristan Tarrant ttarrant at redhat.com
Tue Jul 26 04:34:43 EDT 2016


On 26/07/16 10:24, Sebastian Laskawiec wrote:
> Hey Tristan!
>
> Comments inlined.
>
> Thanks
> Sebastian
>
> On Tue, Jul 26, 2016 at 9:50 AM, Tristan Tarrant <ttarrant at redhat.com 
> <mailto: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].

No, for server we would not use Jolokia but rely on the management HTTP 
server (the one that handles port 9990 already).

>
>     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!
Agreed.

Tristan


More information about the infinispan-dev mailing list