Application Summary

OS Monitoring Application


The operating system monitor, OS_Mon, provides the following services:

  • cpu_sup CPU load and utilization supervision (Unix)
  • disksup Disk supervision(Unix, Windows)
  • memsup Memory supervision (Unix, Windows, VxWorks)
  • os_sup Interface to OS system messages (Solaris, Windows)

To simplify usage of OS_Mon on distributed Erlang systems, it is not considered an error trying to use a service at a node where it is not available (either because OS_Mon is not running, or because the service is not available for that OS, or because the service is not started). Instead, a warning message is issued via error_logger and a dummy value is returned, which one is specified in the man pages for the respective services.


When OS_Mon is started, by default all services available for the OS, except os_sup, are automatically started. This configuration can be changed using the following application configuration parameters:

start_cpu_sup = bool()

Specifies if cpu_sup should be started. Defaults to true.

start_disksup = bool()

Specifies if disksup should be started. Defaults to true.

start_memsup = bool()

Specifies if memsup should be started. Defaults to true.

start_os_sup = bool()

Specifies if os_sup should be started. Defaults to false.

Configuration parameters effecting the different OS_Mon services are described in the respective man pages.

See config(4) for information about how to change the value of configuration parameters.


The following MIBs are defined in OS_Mon:


This MIB contains objects for instrumentation of disk, memory and CPU usage of the nodes in the system.

The MIB is stored in the mibs directory. It is defined in SNMPv2 SMI syntax. An SNMPv1 version of the MIB is delivered in the mibs/v1 directory.

The compiled MIB is located under priv/mibs, and the generated .hrl file under the include directory. To compile a MIB that IMPORTS the OTP-OS-MON-MIB, give the option {il, ["os_mon/priv/mibs"]} to the MIB compiler.

If the MIB should be used in a system, it should be loaded into an agent with a call to os_mon_mib:load(Agent), where Agent is the pid or registered name of an SNMP agent. Use os_mon_mib:unload(Agent) to unload the MIB. The implementation of this MIB uses Mnesia to store a cache with data needed, which implicates that Mnesia must be up and running. The MIB also use functions defined for the OTP-MIB, thus that MIB must be loaded as well.

See Also