index 6e25d3f8056eba4927d9c12d60fbba1a744cfaa2..7cdca157a51d613a3670a9a0dffb50ab68cd1f2d 100644 (file)
--- a/README
+++ b/README
Concepts
--------
+ Graphs
+ ------
c4 lets you configure "graphs" in its config file. Each graph has a selector
which determines which files will be used to draw the graph. The selector
uses the host/plugin[-instance]/type[-instance] layout known from collectd.
by adding it to the appropriate instance or by creating a new instance. I.e.
each file may be used in multiple graphs.
+ If a file does not match any graph, a "dynamic graph" matching only that file
+ will be created. This allows the front-end to display all files even when
+ there is no explicit graph definition for them.
+
+ Data providers
+ --------------
+ The idea is to encapsulate all the functions specific to one write plugin of
+ collectd using an interface for querying data. This allows to program the
+ rest of the front-end in a way that doesn't rely on one specific storage
+ back-end.
+
+ Currently, the only data provider scans a directory for RRD files and uses
+ the librrd to fetch data. The whole concept is still a bit of a work in
+ progress and currently the code-base is still cluttered with "*_get_rrdargs"
+ functions. The RRDtool generated graphs will likely be replaced by a graphing
+ solution integrated in the C code (creating rendered graphics) and / or a
+ JavaScript-based solution which renders graphs in the browser.
+
+ In the future it shall be possible to use multiple data providers in
+ parallel. The vision is to have multiple servers running RRDCacheD. Data is
+ distributed to those servers using the "Hashed" match of collectd and then a
+ unified interface is provided via c4.
+
+
+Dependencies
+------------
+
+ c4 currently requires the following libraries:
+
+ * libfcgi
+ <http://www.fastcgi.com/>
+
+ * librrd_th (thread-safe version of librrd)
+ <http://oss.oetiker.ch/rrdtool/>
+
+ * libyajl
+ <http://lloyd.github.com/yajl/>
+
+ The "configure" script is currently kept minimal. It may therefore be
+ necessary to set the CPP- and LD-flags manually. In case of libyajl, which is
+ not built with libtool, you may need to set the rpath, too.
+
+
+Bugs
+----
+
+ * Sending a FLUSH command to the collectd process is not yet possible.
+ * "*_get_rrdargs" functions and other RRDtool specific cruft is still all
+ over the code-base.
+ * The JSON-based interface is unstable.
+ * Currently it's not possible to display more than one graph at a time.
+ (With a very limited and undocumented exception.)
+ * Speaking of which: There is no documentation.
+ * ... (to be added)
+
+
+License
+-------
+
+ collection 4 is licensed under the GNU Lesser General Public License (LGPL),
+ version 2.1. The exact license terms are available in the file "COPYING" in
+ the top source directory.
+
+ c4 includes the JavaScript library "jQuery" which is dual-licensed under the
+ MIT license and the GPL. The file "share/jquery-1.4.2.min.js" includes a
+ license header which points you to more detailed information.
+
+ c4 includes the JavaScript libraries "Raphaël" and "gRaphaël" which are
+ licensed under the MIT license. The files "share/raphael-min.js",
+ "share/g.raphael-min.js", and "share/g.line-min.js" each include a license
+ header which points you to more detailed information.
+
Author
------