SNMP is great until you realise that the MIBs installed on a particular machine may not all be the same. What is needed is an automated discovery technique so that the user can choose, from a palette of available options, which SNMP value should be monitored by the graph. In fact, we also need to greatly reduce the number of available values, since most of them are strings or static numbers such as the number of CPUs or ethernet interface cards. What the user wants to see reflected in the graph are numbers that change, and there aren't so many of those for any given machine. Also he/she wants to monitor specific applications currently running on the machines, and for that we also need dynamic discovery.
So, my idea was to provide a default MIB on the monitoring machine. This would be loaded by the applet locally (from the same directory) and then each value searched for on the currently selected host. If found, it will be entered in the menus. And this is the problem. To avoid multiple hierarchies in the menus I opted for a simple design with two "combo boxes". The left hand combo box contains the siblings of the parent of the currently selected value. And the right hand combo shows the siblings of the current selection, which is highlighted, say, by italics or bold.
- To go down the hierarchy the user chooses a value on the right. If that has children, then the right menu moves to the left and the selected element's children takes its place on the right. The new selected element is the first child. If we are already at a leaf node then all we can do is choose another leaf. Otherwise nothing happens.
- To go up the hierarchy the user chooses a value on the left hand combo. The contents of the left combo moves to the right. The previous parent becomes the selected item, and its parents get displayed on the left, if they can. Otherwise nothing happens.
Simple. The user only sees part of the available hierarchy at any one time. Like those menus you get on hp printers. Except no special buttons to remember for up and down.