$Id: TODO 352 2010-04-26 14:59:13Z mwall $

Bugs

* so much for simplicity - javascript is now required
* the subroutine 'debug' should be called 'log'
* gui controls do not prevent specifying future end date.
* nagios-based authorization does not yet respect contacts
* next/prev links should be javascript so they respect controls state
* wrong interpretation of nagios default user

Desired features.

* Installer - that can configure Nagios (must work with Nagios 2.12 and 3.x).
* Custom unit labels on the graphs.
* re-do the default map rules to match the plugins shipped in standard, current
    nagios configurations for mainstream distros
* do pattern matching in the groupdb and hostdb files
* do test coverage on the cgi scripts, not just ngshared.pm
* make authz understand groups, not just users
* make offset accept abbreviations (e.g. 1w, 2d, 3m)
* do a configuration mode that has no javascript (for really big sites)
* process host performance data as well as service performance data
* graph templates in addition to existing service-based patterns
* optionally display host/service perfdata in a table in show.cgi
* link to nagios availability report for timerange for each graph
* link to nagios alerts for timerange for each graph

Notes

As of march 2010, I (mwall) have done about as much as I can to clean up
nagiosgraph without fundamental architectural changes.  It seems to perform
adequately on small sites (a hundred hosts and a few hundred services) on
old hardware (circa 2004).

Backward-compatibility has been important - the latest nagiosgraph still
works with older versions of nagios and older nagiosgraph configurations
and data.  Most importantly it still works with existing data files.

Here are a few things that will need to be addressed at some point:

 - batch daemon for processing on large installations.  as it is, nagios
   stops doing its thing until nagiosgraph has finished processing perfdata.
   doing the processing in the background would let nagios do its thing at
   the expense of near-real-time updating of rrd files.

 - obtain data from arbitrary source (e.g. a sql database), not just directly
   from nagios or the nagios perflog.

 - menudata does not scale.  nagiosgraph javascript must be refactored so
   to work on large installations.

 - generic map rules.  define a fallback map rule that detects standard
   perfdata and injects the contents into rrd files, with one source
   per database.
