My recommendation would be to keep things simple. There isn't going to be one test that will satisfy all use-cases.
It's worth noting that we already have lots of different ways to inspect a lot of different data points on the broker via the management API. You can access data about message counts, consumer counts, connection counts, etc. via HTTP (i.e. using Jolokia), JMX, & management messages via most of our supported protocols. We also expose the most critical data through metrics plugins. This data can be consumed by tools like Prometheus and ultimately Grafana which have sophisticated monitoring and alerting capabilities which I would not want to try to reproduce in the broker itself. Perhaps there are some metrics that we don't currently expose that would be useful here, but in general I think most of the raw data is available for any user to determine the health of their broker as it fits their use-case. Justin On Tue, Apr 28, 2020 at 4:59 AM Domenico Francesco Bruscino < bruscin...@gmail.com> wrote: > I'm implementing a tool to determine whether the broker is in a healthy > state. There is a series of health checks that can be performed, starting > with the most basic and very rarely producing false positives, to > increasingly more comprehensive, intrusive, and opinionated that have a > higher probability of false positives. > > In the following list there are some health checks grouped by target: > - node > - up - check if a client can connect to the the node > - disk - check if the disk hits the `max-disk-usage` limit > - memory - check if the memory available to the JVM > - backup - check if the backup node is announced > - queues - check if all queues with a positive rate have a consumer > - queue > - up - check if the queue exists > - browser - check if the queue is browsable > - consumer - check if a consumer can connect to the queue and/or receive > messages > - producer - check if a producer can connect to the queue and/or send > messages > > I would start with some of the previous checks, exposing them through the > MBeans interfaces and/or the Command Line utility. > > What are your thoughts? > > Domenico >