Skip to content

mnesia

mnesia plugin

Description

This plugin will monitor and extract information from the Mnesia database running on a particular node. It can generate various metrics, notifications for relevant changes, and raise alarms when Mnesia enters a problematic state.

Consult the official Mnesia documentation for a deeper understanding of various topics mentioned here.

Applications it depends on

mnesia

Modules

wombat_plugin_mnesia and wombat_plugin_mnesia_metrics

Reports

This plugin reports logs, metrics and alarms.

Alarms reported

  • Mnesia has become inconsistent
  • Mnesia is overloaded

Please find the detailed alarm description in the Alarms documentation.

Metrics reported

Metrics from mnesia:system_info/1
  • checkpoints Tags: dev

  • db_nodes Tags: dev

  • dump_log_time_threshold Tags: dev, op

  • dump_log_write_threshold Tags: dev, op

  • extra_db_nodes Tags: dev

  • held_locks Tags: dev

  • local_tables Tags: dev

  • lock_queue Tags: dev

  • master_node_tables Tags: dev, op

  • running_db_nodes Tags: dev, op

  • subscribers Tags: dev

  • tables Tags: dev

  • transaction_commits Tags: dev

  • transaction_failures Tags: dev, op

  • transaction_log_writes Tags: dev

  • transaction_restarts Tags: dev

  • transactions Tags: dev

  • no_table_loaders Tags: dev

  • dc_dump_limit Tags: dev, op

Table-specific Metrics

For tables listed under the table_metrics configuration parameter the following values will be collected:

  • TABLE-size: the number of records in the table Tags: dev, op

  • TABLE-memory: memory use of the table Tags: dev, op

Notifications

WombatOAM always subscribes to and displays Mnesia system events. Activity and table-specific events can also be subscribed to by editing the configuration.

Configuration options

table_events Whether to generate events for the tables stored, it can be all or none or a list of tables. If a listed table doesn't exist when WombatOAM starts monitoring the node a warning will be generated.

table_metrics Whether to generate metrics for the tables stored, it can be all or none or a list of tables. If a listed table doesn't exist when WombatOAM starts monitoring the node a warning will be generated.

activity_events Whether to subscribe to activity events or not. It can be true or false. If true, this will report a notification to WombatOAM every time an activity is reported on the Mnesia app on the node.

Note that WombatOAM periodically checks for new tables until all the tables listed as either table_events or table_metrics exist. In case of all is set the periodic checks never end, whilst in case of none no check will be performed.

Collecting table metrics for many tables or enabling event reporting can induce serious load both for WombatOAM and the managed node. Those features are mostly meant for debugging a Mnesia cluster, not for simple monitoring; use them with care.

Example sys.config entry

1
2
3
{set, wo_plugins, plugins, mnesia, activity_events, false}.
{set, wo_plugins, plugins, mnesia, table_events, none}.
{set, wo_plugins, plugins, mnesia, table_metrics, none}.