User Monitoring

Hi,

I’m new to openfire - I run the elasticsearch cluster at work and I’ve been asked to pull user related data into elasticsearch. Things like count of rooms, list of participants in each room, count of active users.

Ive found the JMX functionality and after a bit of fiddling got jolokia working with it. I’ve not found anything there that jumps out as useful for my scenario.

Ive got the Monitoring Service plugin installed and I can see many “OF*” tables which look interesting but I don’t really want to access this data directly from the database.

I cant figure out how to get the metric data via api - I’m sure it is possible, after all the web client is doing so :slight_smile:

Please can somebody point me in the right direction, I’ve probably missed something blindingly obvious.

Openfire 4.9.2 Ubuntu

Thanks,

Matthew.

Hi Matthew! I’m not sure if all of the data is readily available to you. The web front-end (I assume you are referring to the admin console) ties directly into the Openfire code.

If the various JMX solutions aren’t working for you, then my next suggestion would be to look at the REST API plugin for Openfire. You can get a good amount of information from that.

If that doesn’t work for you either, then you can always develop your own extensions to preexisting plugins (please consider feeding them back to the community!) or develop a new, properietary plugin that exposes the data that you need in a format that’s most usable to you. Openfire is very well geared towards hosting such plugins, and offers many resources to get you started.

Another option that is available to you is going through our commercial service providers. You could approach any of them with a request to create the desired functionality.

Thanks Guus, your input is very appreciated.
It looks like we should be able to get at least 90% of what we want from the rest api.
I found the rrd support confusing at first - I’ve used rrd in graphite / cacti before but did not know of jrobin :slight_smile:
On the subject of contributing back to the community, I’m afraid that I am no java developer and I find the prospect of gradle or maven quite terrifying.
A final question, please, am I able to limit the capability of the user accessing the rest api so that the monitoring user does not have write access? I confess that I have not experimented, please feel free to ignore.

Ah, good to hear that you’ve found most of what you need. Out of curiosity, what were the things that are missing?

Sadly, there’s no granular authorization control in the REST API plugin. Any user that has access, is allowed to do anything. I’d like to see this changed in the future, but there are no immediate plans to tackle this effort.