README: Document the dependency on flex and bison.
[collection4.git] / README
diff --git a/README b/README
index 6e25d3f..6c7e0b9 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,6 @@
  collection 4 - An efficient graphing front-end for collectd
 =============================================================
+<http://octo.it/c4/>
 
 About
 -----
@@ -12,6 +13,8 @@ About
 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.
@@ -33,6 +36,84 @@ Concepts
   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.
+
+  When building from the Git repository, you'll need to have flex and bison (or
+  possibly lex and yacc) installed. These two programs are used to generate the
+  code for parsing the config file. If you are building from a tarball, the
+  generated .c and .h files are included and you don't need to have these
+  programs installed.
+
+
+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
 ------