Skip to content

mongooseim

MongooseIM plugins

Description

The MongooseIM plugins help you prevent outages and understand your MongooseIM nodes. The plugins expose the most important MongooseIM metrics that are handy for both manual and automated system health checks. Also, the provided services allow you to explore the configured hosts and to observe your MongooseIM's users.

Applications it depends on

mongooseim

The plugin works with MongooseIM version 3.6.0 and above. However, the plugin can expose metrics with earlier versions, but it is not maintained.

Modules

The functionalities are separated into 3 independent plugins:

  • wombat_plugin_mongooseim_metrics
  • wombat_plugin_mongooseim_hosts
  • wombat_plugin_mongooseim_users

Metrics reported

Metrics reported under MongooseIM tree can be divided into 4 categories based on the exposed values.

Gauges

  • Online users: The current number of online users on a given MongooseIM node. Tags: dev

Counters

The following metrics count events that happened within a minute.

  • Auth errors last minute: Number of authentication failures. Tags: dev, op

  • Logins last minute: Number of successful logins. Tags: dev, op

  • Logouts last minute: Number of logouts. Tags: dev

  • XMPP messages received last minute: Number of XMPP message stanzas received by the server. Tags: dev

  • XMPP messages sent last minute: Number of XMPP message stanzas sent by the server. Tags: dev

  • XMPP messages sent to offline user last minute: Number of XMPP message stanzas addressed to offline users. Tags: dev

  • XMPP presence received last minute: Number of XMPP presence stanzas received by the server. Tags: dev

  • XMPP presence sent last minute: Number of XMPP presence stanzas sent by the server. Tags: dev

  • XMPP error stanzas last minute: Number of stanza errors (all stanzas with type='error'). Tags: dev, op

  • XMPP stanzas dropped last minute: Number of dropped stanzas (mainly due to privacy settings). Tags: dev, op

Median execution time

These metrics are the derived median execution times of core authentication functions.

  • Auth check password time median: Derived from all the measured time taken by the check_password action. In milliseconds. Tags: dev, op

  • Auth does user exist time median: Derived from the milliseconds spent on evaluating the does_user_exists action. Tags: dev, op

Median data size

These metrics derive the median values of XMPP stanzas' properties.

  • XMPP stanzas received size median: Derived from all the XMPP stanzas' sizes received by the server. Tags: dev

  • XMPP stanzas sent size median: Derived from all the XMPP stanzas' sizes sent by the server. Tags: dev

Provided services

All the provided services are explorers, available under the Services page:

  • Display configured hosts: Displays all configured XMPP hosts on the MongooseIM node.

  • Display registered hooks for host: Displays all registered hooks for all or the given XMPP host.

  • Display started modules for host: Displays all started modules with their configuration for all or the selected XMPP host.

  • MongooseIM users: Shows the top N MongooseIM's user ordered by values such as: Memory Size, Message Queue, Data sent, Data received, Created. Data sizes are displayed in kilobytes. This action may put significant load on the MongooseIM node. Use it with caution.

  • MongooseIM user info: Displays detailed information about the specified MongooseIM user.

Threshold based alarms

To prevent outages, you may configure the following threshold based alarms. The configuration below, which can be copied and pasted to your wombat.config file, uses the default thresholds. The best values may vary among MongooseIM clusters.

To get the best out of your MongooseIM nodes (and to properly configure WombatOAM), you may contact the MongooseIM team (mongoose-im@erlang-solutions.com).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{set, wo_metrics, threshold_sets,
 [
  [{nodes, all},
   {rules,
    [[{name, "auth_check_overload_check_password"},
      {metric, {"MongooseIM", "Auth check password time median"}},
      {raise_level, 50000},
      {cease_level, 40000},
      {unit, numeric},
      {direction, warn_above}],
     [{name, "auth_check_overload_user_exist"},
      {metric, {"MongooseIM", "Auth does user exist time median"}},
      {raise_level, 50000},
      {cease_level, 40000},
      {unit, numeric},
      {direction, warn_above}],
     [{name, "auth_failure"},
      {metric, {"MongooseIM", "Auth errors last minute"}},
      {raise_level, 5},
      {cease_level, 3},
      {unit, numeric},
      {direction, warn_above}],
     [{name, "xmpp_stanza_error"},
      {metric, {"MongooseIM", "XMPP error stanzas last minute"}},
      {raise_level, 5},
      {cease_level, 3},
      {unit, numeric},
      {direction, warn_above}]]}]
 ]}.