Hi Marc,
IMHO, this is a very good idea and a necessary feature. Looking at the usage perspective, it might be interesting to differentiate between developer monitoring (“printf debugging”)
and production monitoring. From a developer perspective, I like how many MQTT brokers make internal metrics easily available under the $SYS/ topic structure. One idea to combine both could be to make monitoring data available through standard metrics/logging
frameworks, as you suggest, and additional publish it into either a certain topic structure like $SYS, or even into a system tenant (although that would limit the use of Hono across several unrelated tenants).
HiveMQ has some interesting thoughts why $SYS is a bad idea for production monitoring of MQTT brokers, although most of these can be adressed with configuration and/or access
control changes:
http://www.hivemq.com/blog/why-you-shouldnt-use-sys-topics-for-monitoring/
Regards,
Bosch Software Innovations GmbH
Development Core Products (INST/ESW)
Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB 148411 B
Executives: Dr.-Ing. Rainer Kallenbach; Michael Hahn
Von:
<hono-dev-bounces@xxxxxxxxxxx> im Auftrag von "Pellmann Marc (INST/ECS4)" <Marc.Pellmann@xxxxxxxxxxxx>
Antworten an: hono developer discussions <hono-dev@xxxxxxxxxxx>
Datum: Mittwoch, 22. März 2017 um 13:27
An: "hono-dev@xxxxxxxxxxx" <hono-dev@xxxxxxxxxxx>
Betreff: [hono-dev] Metrics
Hi,
I would like to propose the introduction of metrics in Hono - e.g. the number of connections etc. It should be easily extend-able and since we want to scale out horizontally we need to collect the metrics over all instances - a push system might fit well.
Since Hono built on Vert.x, I looked into it, for possibilities to instrument Hono metrics. It turns out, that Vert.x has a metrics module for there own metrics but no API to collect custom metrics. For there own metrics they have two implementations - one
with Dropwizard Metrics (default) and an other with Hawkular - encapsulated over an SPI.
I think for our Hono application it might be overkill to also implement different metrics providers. I think it would be fine to just use Dropwizard Metrics, which has different reporters to send the metrics to e.g. Graphite, Ganglia (or also Hawkular and
Prometheus) or just use JMX or logger for development.
There would be also the option to use Spring Boot Actuator, which has there own, more abstract metrics (which will be mapped to Dropwizard Metrics, when in classpath). But for this, Hono would depend on Spring Boot Actuator directly in core code, which is
not so nice.
Any thoughts about this or experiences with metrics frameworks?
Mit freundlichen Grüßen / Best regards
Marc Pellmann
Bosch Software Innovations GmbH
INST/ECS4
Schöneberger Ufer 89-91
10785 Berlin
GERMANY
www.bosch-si.com
Registered office: Berlin, Register court: Amtsgericht Charlottenburg, HRB 148411 B
Executives: Dr. Ing. Rainer Kallenbach, Michael Hahn