# The &icemon; Handbook

## Introduction

&icecream; is a distributed compile system. It allows parallel compiling by distributing the compile jobs to several nodes of a compile net running the icecream daemon. The icecream scheduler routes the jobs and provides status and statistics information to the icemon monitor.

Each compile node can accept one or more compile jobs depending on the number of processeors and the settings of the daemon. Link jobs and other jobs which cannot be distributed are executed locally on the node where the compilation is started.

&icemon; provides a view on the compile net, which jobs run where and details about jobs and nodes.

## Views

&icemon; provides a variety of views on the icecream net. Which view is shown can be selected in the "View" menu. If the view can be configured a configuration dialog can be opened by chosing the "Configure" item from the "Settings" menu.

By selecting "Stop" from the "View" menu the view can be stopped from updating. By selecting "Start" from the view menu the updating is resumed.

To refresh the nodes in the current view select "Check Nodes" from the "View" menu.

The following sections describe the available views.

### Star View

The star view shows the compile net as rings of nodes centered around the scheduler. Each node is assigned a color which is used to color the node itself and the compile jobs started from this node. A dashed line between the scheduler and a node indicates that the corresponding node has sent a compile job to the icecream net. A solid line between the scheduler and a node indicates that the node has been assigned a job by the scheduler. The lines have the color of the node issuing the jobs as well as the rings around the compiling node. Each ring represents one compile job.

The nodes have a label with the name of the corresponding host. When leaving the mouse pointer over the label for a couple of seconds a tooltip is shown containing some more information about the node like IP address, processor architecture, name of the icecream flavor the color is based on, icecream id and a speed index.

When selecting the "Configure" item of the "Settings" menu you get a configuration dialog where you can configure the number of nodes shown in a ring and specify a filter on the shown architectures. The number of nodes per ring affects in how many rings around the scheduler the nodes are shown. The architecture filter is a regular expression which is applied to the architecture names of the nodes. Only the nodes are shown for which the regular expression matches. If the expression is an empty string all nodes are shown.

### Summary View

The summary view shows a list with a summary for each node. The summary contains the number of jobs the node has processed while the view has been shown, an indicator for each possible job the node can accept and a list of files currently processed by the node. The indicator is black if the node is idle and has the color of the node issuing the compile job when the node is active. The filename and the state of the compile job is shown in the right box of the summary.

### Gantt View

The Gantt View shows a history of compile jobs for each node. Each node has a bar for each compile job it can accept. The compile jobs are shown scrolling on the bar from left to right. A grey bar means idle time. Compile jobs are shown in the color of the node issuing the job and have a label providing the name of the file which is compiled. Local jobs are shown on the bar of the node running the job in a lighter version of the node color.

With the configuration dialog available under the "Configure" item of the "Settings" menu you can chose if a time scale should be added to the top of the gantt view or not. The time scale uses units of a second.

### Host View

The host view shows the icecream status of the node the monitor is running on. The background of the view is painted in the color of the node and its name is shown in the center. On top it contains two LED displays, the left one shows the state of the jobs issued by the node the monitor is running on. It is dark if the node is idle, red if the node has issued one or more jobs to other nodes and orange if it is running a local job. The right LED shows the compile status of the node. It is dark when the node is idle and green when the node is running an icecream compile job.

At the bottom of the view the current number of local, remote and compile jobs on the node is shown.

### List View

The list view shows a list of all compile jobs which were run since activation of the view. The list shows the identifier of the job, the name of the compiled file, which node issued the job and which node compiled it. The state of the job and some statistics about the job.

## &icemon; Kicker Applet

&icemon; also provides a Kicker applet which shows the state of the node the applet runs on. It shows the color and name of the node and two LEDs indicating the status of the jobs running on the node. The left LED is dark when the node hasn't any job, orange when it is running a local job and red if it is running one or more remote jobs. The right LED is dark when there is remote compile job from another node is running on the node the applet runs on and green when there is one or more job running on this node.

## Credits and License

&icemon;

Program copyright 2004, The &icecream; Developers

&icecream; Authors:

- Michael Matz matz@suse.de

- Stephan Kulow coolo@suse.de

- Cornelius Schumacher cschum@suse.de

Based on the work of:

- The distcc developers

- Frerich Raabe raabe@kde.org

Documentation copyright 2004

Author:

- Cornelius Schumacher cschum@suse.de

See the &icecream; homepage for more details.

&underFDL; &underGPL;
&documentation.index;