$Id$

Bugs

* 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 and should respect controls state
* wrong interpretation of nagios default user

Desired Features

* Custom unit labels on the graphs.
* graph templates in addition to existing service-based patterns
* 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)
* make everything behave well when javascript is disabled
* process host performance data in out-of-box configuration
* process nagios performance data in out-of-box configuration
* in graph details:
    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
    host status
    host notifications
    host history
    host trends
    host state breakdowns
* testing with incinga, nagios xi
* cron job to archive or delete old rrd files
* logrotate scripts for nagiosgraph.log and nagiosgraph-cgi.log    
* the topology of data mapping should all reside in the map file instead of
    being split between the map file and the configuration file

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 should be refactored so
   to work better on large installations.

 - showgraph is slow.  a page with hundreds of graphs is pretty slow to
   load, due primarily to all of the embedded showgraph calls.
