Hi!
During the last couple of months I've been working on a (OpenSource)
database solution & web interface for Collect (the performance monitor
program for Tru64).
What it does is simply to take the output from Collect, put it into a
database and then present it as graphics & tables on a web page.
I've recently added support for Solaris and Linux too, using Collect
look-alike programs (SymbEL and OpenSar), but due to a couple of serious
bugs in SymbEL it'll probably take a while before this one is ready.
I think/hope this solution can be useful for many of the people reading this
mailing-list. It has for me even though it's not finished yet.
I plan to setup a live demo soon (when I get my xDSL connection), and some
sort of mailing list so we don't flood this with offtopic stuff.
...however this mail is mostly because I need a bit of help, both related to
what people would like to be able to do with this solution but also, and
currently mostly, help with development & bug fixing.
If anyone wants to contribute, they're more than welcome, especially Perl,
database & PHP experts...
To get an idea about this solution take a look at what kind of graphics it
can generate :
http://www.dassic.com/statdb/graph_example_01.png
http://www.dassic.com/statdb/graph_example_02.png
http://www.dassic.com/statdb/graph_example_03.png
...with web interfaces such as :
http://www.dassic.com/statdb/interface_example_common.png
http://www.dassic.com/statdb/interface_example_custom.png
It is ofcourse also possible to use ODBC and a program like Microsoft Excel.
As the bottom of the pictures might indicate, I've designed a graph engine
(in PHP) that is capable of interpreting SQL queries and present them as PNG
images. Actuallly it doesn't care what query you execute... it only looks at
the result and expect the first row to be a timestamp, the second to be a
system ID and the rest to be positive values. Apart from these few
restrictions it's completely dynamic.
A general description of the solution is available at :
http://www.dassic.com/statdb/description.htm
A description of the database design (MySQL & Oracle are supported) :
http://www.dassic.com/statdb/database_design.htm
...and now for my current problem (fault tolerent Perl TCP programming) :
I start every agent with this shell script :
http://www.dassic.com/statdb/rc/statdb_client
...it starts Collect and pipe the output to this script :
http://www.dassic.com/statdb/client/statdb_client.pl
...which connect to this script on the server :
http://www.dassic.com/statdb/server/statdb_server.pl
...which is started with this shell script :
http://www.dassic.com/statdb/rc/statdb_server
The server Perl script load modules corresponding to the recieved input :
http://www.dassic.com/statdb/server/collect.pm
My problem is that even though I've tried to make the client/server
connection fault tolerent, I still end up with defunct server processes
whenever there is a network problem and eventually both the primary and the
secondary server die or go defunct and sometimes the client die too or just
stop transferring data. Then the data transfer stops.
I think it's related to my lack of handling of termination on the server
side if the client doesn't disconnect nicely, but I'm no Perl expert (as
many probably can see from my code) and I don't know how to make this
client/server connection 100% stable.
--
Un saludo / Venlig hilsen / Regards
Jesper Frank Nemholt
Unix System Manager
Compaq Computer Corporation
Phone : +34 699 419 171
E-Mail: JesperFrank.Nemholt_at_compaq.com
Received on Tue May 29 2001 - 19:31:11 NZST