New Monitoring Plugin for Openfire

The folks at Globility have been very kind to release back to the Ignite Realtime community their improvements to the Openfire monitoring plugin.

They have merged the monitoring plugin with the open archive plugin by@ Stefan Reuter and have sucessfully combined chat and group chat archiving (from monitoring) as well as XEP-0136 Message Archiving support (from open archive) removing all redundant and duplicated code. The monitoring graphing and statistics pages work just fine as before.

A change to the database schema of the Monitoring plugin was made to support the XEP-0136 spec and auto-upgrade DB scripts have been provided to handle the database upgrade for all the supported DBs as best as possible.

Source:

http://svn.igniterealtime.org/svn/repos/openfire/trunk/src/plugins/monitoring/

Latest build (1.3.0) of the plugin is attached. Any bugs please file in JIRA against leonroy

I have tested it against the latest version of OfChat (Chrome extension) web client as a drop-in replacement to the open archive plugin for chat history and it works ok.

For more details, see http://community.igniterealtime.org/message/225654

1 Like

Good news. I hope this pluginā€™s bugs have been fixed in the process, or at least we have whom to send the reports to I always had doubts suggesting this plugin to users as it have stopped working for me few times with no reason and there were more reports in the forums.

Hopefully, those bugs may have been removed with the code cleanup.

In any case, Leon has taken responsibility for the plugin and has asked for all bugs to be filed in JIRA against his name

Just a FYI -

Since installing the new monitoring plugin, when archving Group Conversations the participants name in the chat body comes up as ā€œnullā€

For example:

(8:01 PM) null: test

(8:01 PM) null: test2

Will this work with a mssql db backend?

My system is much more stable than before after putting the new plugin on it. So some bugs are goneā€¦

It does. You just have to switch it on. By default, archiving is off

Hi Walter, I am sure Leon will be pleased to hear that. They did a great job on that plugin

thanks !

Doesenā€™t work! No new messages in Server -> Archiving

Settings:

Archive one-to-one chats - enable
Archive group chats - enable

I use release 3.7.1.

Hi,

Is this jar already useable for a clustered setup? I tried it and the monitoring tabs donā€™t appear. Iā€™m not sure if it is an issue with my setup or not.

Please advice,

Best Regards,

Stevenson Lee

Glad to hear the new pluginā€™s working better for you all.

TBH the monitoring plugin has always had issues displaying some of the tabs, even with Openfire 3.6.4. Iā€™m not sure why, but at a basic level weā€™re focusing on getting the core, auto chat archiving and xep-0136 support to be bullet proof.

Please file any bugs in JIRA though and weā€™ll try to fix them ASAP.

In the meanwhile weā€™ll take a look at the below as a high priority:

Since installing the new monitoring plugin, when archving Group Conversations the participants name in the chat body comes up as ā€œnullā€

For example:

(8:01 PM) null: test

(8:01 PM) null: test2

Leon,

Thanks for fixing this and updating the changelog as requested.

Hi all, known issue that 1.3.0 did not save messages properly. Please see the following topic for 1.3.1 which resolves the issue (it is Openfire 3.8 only though):

I think this is because ofMessageArchive table is redesigned, separating resource from JID. The label on jsp page displays resource which the plugin should get from toJIDResource instead of toJID.

my workaround:

modify the Conversation.java file, two places:

  1. around line 98:

// Jacky Jia 2013.02.21

// the way to minimize the impact but still to have the resource in toJID.

// private static final String LOAD_MESSAGES =

// "SELECT fromJID, toJID, sentDate, body FROM ofMessageArchive WHERE conversationID=? " +

// ā€œORDER BY sentDateā€;

private static final String LOAD_MESSAGES =

"SELECT fromJID, toJID, sentDate, body, toJIDResource FROM ofMessageArchive WHERE conversationID=? " +

ā€œORDER BY sentDateā€;

// -----

  1. around line 327:

// Jacky Jia 2013.02.21

// the way to minimize the impact but still to have the resource in toJID.

// JID toJID = new JID(rs.getString(2));

JID toJID = new JID(rs.getString(2) + ā€˜/ā€™ + rs.getString(5));

// -----

I think it will minimize the impact if thereā€™s any. However, havenā€™t tested it fully.