Script to configure and show graphs and group of graphs

Francesco Duranti fduranti at q8.it
Fri Oct 13 00:23:55 CEST 2006


Hi all, 
some day ago I was thinking on how to get the graphs generated by hobbit
rrd in a more presentable way because now with the netapp scripts I'm
getting about more then 1000 rrd file on some objects and most of the
time I've to search for the data I really need in the trends column
loosing some time just to check that what I want to see is just in the
middle of the page and difficult to spot.

So I decided to create a script that will let me choose what graphs I
want to see.
At this moment I'm finishing some tests on the scripts and I want to
know what people would like to see added to it or get some ideas from
other that had the same problems I got.

The script at this moment have 2 mode of work:
1) It can be called via the hobbit menu (you have to add it to the menu)
2) It can be run from a test column like the trends graph (you've to run
a custom extention script that will add that column to every object in
hobbit)

The only difference between the 2 running mode is that in the first mode
you can choose the host you want to see the graphs from a list and in
the second case you just see the graphs of the hosts of the column you
clicked. In the first case the list of host is constructed with all the
host on the page you're on and all host of the subpages.

In the webpage you'll be able to choose a group of test and/or a list of
test you want to display.
The definition of what tests will be in a defined group and what host
have that group to be displayed is done in a configuration file. 
After I finish the script to create the graphs I'll also start to work
on a script to modify the configuration (add/remove test to group, link
group of test to hosts and change how many rrd file will be displayed in
a single graph for tests that have a FNPATTERN (like disk or inode).

For the moment you could only choose one host from the hostlist, I'm
thinking on how to display multiple graphs (at least 2) and there are 2
solution I could think about: one is to display the data using the
"*-multi" defined into the hobbitgraphs.cfg, the other one will be to
display the graphs one near the other (probably not too elegant) but at
least it should work with most of the graphs and it's possible to check
also graphs with multiple dataset with this one.

In the web page there will be the possibility to choose what group of
graph display for the selected (or default) host or to choose just some
of the tests for that host.
When you change the selected host the list of test group will change
according to the host showing only group defined for that host.
When you change the selected group of test it will display the list of
test of that group so you can choose just one or two graphs to show.
At the head of the selection box of group and test list there will be a
"ALL" that if choosen will display all the graphs that take part in the
group defined on that host or all the graphs for that host.

The list of test will also be defined (and changed automatically) to
show only test defined (and for which there are file with data in them)
for that host.

After you choose to display graph groups or single tests the page is
refreshed and will be divided in 3 parts:
1) at the top there will be the same boxes/button to choose new graphs.
2) after the choosing boxes there will be a series of link that will
move you into the web page to the selected graph
3) the graph you choose to display

After each graph there will be a link to return to the top of the page.
I'm thinking if it can also be usefull to put a "previous test
graph"/"next test graph" link to go to the previous or next test graphs.

The configuration file will be something like this:

#define a graph group named performance
[GROUP performance]
testlist=la,vmstat,vmstat1,vmstat2
hostlist=server1,server2,server3

#define a group that will show disk, inode, snapshot and qtree usage
[GROUP diskusage]
testlist=disk,inode,snapshot,qtree
hostlist=filer1,filer2

#define a group to show single snapshot space usage by volume
[GROUP snapshotusage]
testlist=snaplist,snaplist1,snaplist2
hostlist=filer1,filer2

#define default number of graph to show for each test
[graphnumbers]
# 5 disk % usage per graphs
disk=5
disk1=5
qtree=5
inode=5
# 1 snaplist space usage for each graph
snaplist2=2
snaplist1=2
snaplist=2


Well I think at this moment I've finished so if want let me know what
you think and what you think can be improved.
I hope that the first version will be out before the start of the next
week (probably full of bugs :D)

Francesco



More information about the Xymon mailing list