6.3. Monitoring
***************

Tsung is able to monitor remote servers using several backends that
communicates with remote agent. This is configured in the
"<monitoring>" section. Available statistics are: CPU activity, load
average and memory usage.

Note that you can get the nodes to monitor from a job scheduler, like:

   <monitor batch="true" host="torque" type="erlang"></monitor>

Several types of remote agents are supported ("erlang" is the
default):


6.3.1. Erlang
=============

The remote agent is started by Tsung. It use erlang communications to
retrieve statistics of activity on the server. For example, here is a
cluster monitoring definition based on Erlang agents, for a cluster of
6 computers:

   <monitoring>
     <monitor host="geronimo" type="erlang"></monitor>
     <monitor host="bigfoot-1" type="erlang"></monitor>
     <monitor host="bigfoot-2" type="erlang"></monitor>
     <monitor host="f14-1" type="erlang"></monitor>
     <monitor host="f14-2" type="erlang"></monitor>
     <monitor host="db" type="erlang"></monitor>
   </monitoring>

Note:

  monitored computers needs to be accessible through the network, and
  erlang communications must be allowed (no firewall is better). SSH
  (or rsh) needs to be configured to allow connection without password
  on. **You must use the same version of Erlang/OTP on all nodes
  otherwise it may not work properly!**

If you can’t have erlang installed on remote servers, you can use one
of the other available agents.

Added in version 1.5.1.

erlang monitoring includes now an option to monitor a mysql db with
mysqladmin. Use it like this:

   <monitor host="db" type="erlang"></monitor>
    <mysqladmin port="3306" username="root" password="sesame" />
   </monitor>

Available stats: number of mysql threads and Questions (queries)


6.3.2. SNMP
===========

The "type" keyword "snmp" can replace the erlang keyword, if SNMP
monitoring is preferred. They can be mixed. **Since version 1.2.2**,
you can customize the SNMP version, community and port number. It uses
the Management Information Base (MIB) provided in "net-snmp" (see also
SNMP monitoring doesn’t work?!).

   <monitoring>
     <monitor host="geronimo" type="snmp"/>
     <monitor host="f14-2" type="erlang"></monitor>
     <monitor host="db" type="snmp">
       <snmp version="v2" community="mycommunity" port="11161"/>
     </monitor>
   </monitoring>

The default "version" is "v1", default community "public" and default
port "161".

Since version **1.4.2**, you can also customize the object identifiers
(OID) retrieved from the SNMP server, using one or several "oid"
element:

   <monitor host="127.0.0.1" type="snmp">
     <snmp version="v2">
       <oid value="1.3.6.1.4.1.42.2.145.3.163.1.1.2.11.0"
            name="heapused" type="sample" eval="fun(X)-> X/100 end."/>
     </snmp>
   </monitor>

"type" can be "sample", "counter" or "sum", and optionally you can
define a function (with erlang syntax) to be applied to the value
("eval" attribute).


6.3.3. Munin
============

Added in version 1.3.1.

Tsung is able to retrieve data from a munin-node agent (see http
://munin-monitoring.org/wiki/munin-node). The "type" keyword must be
set to "munin", for example:

   <monitoring>
     <monitor host="geronimo" type="munin"/>
     <monitor host="f14-2" type="erlang"></monitor>
   </monitoring>
