contrib/php-collection: Add a PHP frontend for graph generation.
authorBruno Prémont <bonbons@linux-vserver.org>
Tue, 10 Feb 2009 20:35:44 +0000 (21:35 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Tue, 10 Feb 2009 20:35:44 +0000 (21:35 +0100)
commita019b6c8144745db63c599680bd693ac02f11666
tree9fb3ab23a7579d1d3e352bf653ae6acc7eef820e
parent32c70908f797633ec7a774c3bec273afda49158f
contrib/php-collection: Add a PHP frontend for graph generation.

Hi,

Attached is a patch with a set of PHP files for a complete graphing
environment for collectd-generated RRDs.
Before generating a graph with rrdtool it can tell collectd to flush
the RRDs that are about to be used.

The interface is built with dynamic HTML.
It provides following options:
 - host selection
 -> plugin selection
 --> plugin instance selection
 ---> type selection
 ----> type instance selection (or meta graph)
 - linear / logarithmic Y-scale
 - verbose / minimal legend
 - [Add Graph] [Remove all Graphs] [Refresh Graphs]
For each displayed graph:
 - Move above previous graph
 - Refresh graph
 - Remove graph
 - Move below following graph

I tested on following browsers:
- Firefox-3.0
- Safari-3.2 (Win32)
- Konqueror (KDE-4.1.3)
- Webkit (webkit-gtk-0_p40220)
- Internet Explorer (6, 7, 8rc - CSS layout issues with <8)

Dependencies:
- PHP-5 (might run with PHP-4)
  > GD suport for error images
  > Ability to execute rrdtool binary
  > Unix socket for FLUSH support
- RRDTool (rrdtool graph, rrdtool info)

TODO: complete/improve graph definitions in definitions.php
 though there is code to generate basic graph for any RRD of
 unknown type, so definitions are rather a matter of color,
 DS combination and stacking.

Bruno

File listing with short description:
- config.php
  (configuration)
- functions.php
  (common functions)
- definitions.php
  (graph definitions for most? types from types.db
   - based on collection.cgi)
- definitions.local.php
  (place for site-local graph definitions, e.g. for
   unixsock, tail, snmp generated RRDs)
- index.php
  (main page)
- graph.php
  (page returning the graph's PNG image)
- browser.js
  (whole bunch of Javascript logic to show/hide/update graphs)

Not included are a few images:
- collectd-logo.png
  (16x16, e.g. use collectd.org's favicon)
- favicon.png
  (e.g. use the one in share/collection*)
- refresh.png
- move-up.png
- move-down.png
- delete.png
  (16x16 take matching ones from your system's action-icons)
contrib/php-collection/browser.js [new file with mode: 0644]
contrib/php-collection/config.php [new file with mode: 0644]
contrib/php-collection/definitions.local.php [new file with mode: 0644]
contrib/php-collection/definitions.php [new file with mode: 0644]
contrib/php-collection/functions.php [new file with mode: 0644]
contrib/php-collection/graph.php [new file with mode: 0644]
contrib/php-collection/index.php [new file with mode: 0644]