EMT is a monitoring tool that I’ve been developing over the past few years. It’s goal is to serve as a hub for performance metrics on a single server. I’ve tried to talk about what EMT is before but I’m not a very good writer so I thought it would be best to just show people. This tutorial is going to be a quick overview of installing EMT from the rpm and a basic tutorial of it’s usage. Some of this is covered in the manual and some has changed in newer released.
The easiest way to install EMT is to grab the latest rpm from the Google Code downloads page. After installing the rpm you will see a notice about correcting some details in the default view.
ebergen@etna:(~/gc/emt) sudo rpm -i ./emt-0.2-107.noarch.rpm The emt_view command will likely having missing data until you specify correct interfaces and disks in /opt/emt/plugins/views/default.php.
Seeing this reminds me that EMT needs to support user defined views. I’ve filed an issue about this. Moving on..
The default system stats plugin for EMT uses some tools that are probably already on your system to collect stats about system performance. This duplicates a lot of functionality from the sysstat package which is fine because EMT isn’t just about system stats. If everything went OK in a few minutes the emt_view command will output some stats.
ebergen@etna:(~/gc/emt) emt_view -n 5 [-------emt-------] [--cpu--] [disk memory [------network------] [----swap----] Sampling Start Time Sys% Usr% Busy% [Mem%] Recv Bytes Send Bytes [In] [Out Used sda eth0 eth0 2010-08-16 20:40:01 0 0 1 42 23K 89K 0 0 700M 2010-08-16 20:42:02 1 1 2 42 33K 110K 0 0 700M 2010-08-16 20:43:02 0 1 0 42 21K 93K 0 0 700M 2010-08-16 20:44:01 0 0 0 42 19K 144K 0 0 700M 2010-08-16 20:45:01 0 1 0 42 29K 159K 0 0 700M
The -n 5 tells emt_view to return the most recent 5 events which in the default configuration is 5 minutes of data. EMT plugins are divided into two parts, commands and fields. Internally every minute a series of commands are executed and one or more fields is parsed from those commands. In the output each column is one field. The power of EMT is being able to compare the results of any command with any other command side by side. In the above output there are the results from at least 5 commands.
Depending on the fields there will be either two or three headings per column. The first is the namespace. In future releases it will prevent name collisions between plugins but for now it’s only real use is a grouping for headings. The second column is the field name. The third column is a sub field. Sub fields can be dynamically discovered each minute by a plugin. In this case the plugin discovered eth0 and the view is configured to use it.
A few different views ship with EMT. Some of these are as simple as a list of fields to display. Others create fields on the fly. To see the list of views use emt_view -v. To select a view use emt_view -s view_name. It’s possible to create custom views on the command line with the fields listed in emt_view -l. I’ll cover this in more detail in a future post.
emt_view is the basic method of accessing the data provided by EMT. There are also other programs such as emt_awk which provide csv output that can be piped to other commands like awk. emt_view is commonly used for analysis and emt_awk is often used by monitoring tools to alert on thresholds. I’ll cover these and other commands in future tutorials.