Update documentation for monitoring daemon
authorMichele Tartara <mtartara@google.com>
Fri, 8 Mar 2013 18:35:41 +0000 (19:35 +0100)
committerMichele Tartara <mtartara@google.com>
Thu, 21 Mar 2013 10:29:24 +0000 (10:29 +0000)
This commit updates the installation instructions and the user guide.

Signed-off-by: Michele Tartara <mtartara@google.com>
Reviewed-by: Iustin Pop <iustin@google.com>

INSTALL
man/ganeti-mond.rst

diff --git a/INSTALL b/INSTALL
index bff76a7..22f16b2 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -163,8 +163,8 @@ Haskell optional features
 
 Optionally, more functionality can be enabled if your build machine has
 a few more Haskell libraries enabled: the ``ganeti-confd`` daemon
-(``--enable-confd``) and the monitoring agent
-(``--enable-monitoring``). The list of extra dependencies for these is:
+(``--enable-confd``) and the monitoring daemon
+(``--enable-mond``). The list of extra dependencies for these is:
 
 - `hslogger <http://software.complete.org/hslogger>`_, version 1.1 and
   above (note that Debian Squeeze only has version 1.0.9)
@@ -177,21 +177,33 @@ a few more Haskell libraries enabled: the ``ganeti-confd`` daemon
   bindings for the ``pcre`` library
 - `attoparsec <http://hackage.haskell.org/package/attoparsec>`_
 - `vector <http://hackage.haskell.org/package/vector>`_
+- `snap-server` <http://hackage.haskell.org/package/snap-server>`_, version
+  0.8.1 and above.
 
 These libraries are available in Debian Wheezy (but not in Squeeze, with
 the exception of curl), so you can use either apt::
 
   $ apt-get install libghc-hslogger-dev libghc-crypto-dev libghc-text-dev \
                     libghc-hinotify-dev libghc-regex-pcre-dev \
-                    libghc-attoparsec-dev libghc-vector-dev
+                    libghc-attoparsec-dev libghc-vector-dev \
+                    libghc-snap-server-dev
 
 or ``cabal``::
 
   $ cabal install hslogger Crypto text hinotify regex-pcre \
-                  attoparsec vector
+                  attoparsec vector snap-server
 
 to install them.
 
+In case you still use ghc-6.12, note that ``cabal`` would automatically try to
+install newer versions of some of the libraries snap-server depends on, that
+cannot be compiled with ghc-6.12, so you have to install snap-server on its
+own, esplicitly forcing the installation of compatible versions::
+
+  $ cabal install MonadCatchIO-transformers==0.2.2.0 mtl==2.0.1.0 \
+                  hashable==1.1.2.0 case-insensitive==0.3 parsec==3.0.1 \
+                  network==2.3 snap-server==0.8.1
+
 The most recent Fedora doesn't provide ``crypto``, ``inotify``. So these
 need to be installed using ``cabal``, if desired. The other packages can
 be installed via ``yum``::
index 65c35db..7ff9210 100644 (file)
@@ -6,6 +6,74 @@ Name
 
 ganeti-mond - Ganeti monitoring daemon
 
+Synopsis
+--------
+
+**ganeti-mond** [-d] [-f] [--no-user-checks] [-p PORT]
+
+DESCRIPTION
+-----------
+
+**ganeti-mond** is the daemon providing the Ganeti monitoring
+functionality. It is responsible for running the data collectors and to
+provide the collected information through a HTTP interface.
+
+For testing purposes, you can give the ``-f`` option and the
+program won't detach from the running terminal.
+
+Debug-level message can be activated by giving the ``-d`` option.
+
+The **ganeti-mond** daemon listens to port 1815 TCP, on all interfaces,
+by default. The port can be overridden by an entry the services database
+by passing the ``-p`` option.
+The daemon will refuse to start if the user and group do not match the
+one defined at build time; this behaviour can be overridden by the
+``--no-user-checks`` option.
+
+COMMUNICATION PROTOCOL
+~~~~~~~~~~~~~~~~~~~~~~
+
+The queries to the monitoring agent will be HTTP GET requests on port 1815.
+The answer will be encoded in JSON format and will depend on the specific
+accessed resource.
+
+If a request is sent to a non-existing resource, a 404 error will be returned by
+the HTTP server.
+
+``/``
++++++
+The root resource. It will return the list of the supported protocol version
+numbers.
+
+``/1/list/collectors``
+++++++++++++++++++++++
+Returns a list of tuples (kind, category, name) showing all the collectors
+available in the system.
+
+``/1/report/all``
++++++++++++++++++
+A list of the reports of all the data collectors, as described in the section
+`Format of the report`_.
+
+`Status reporting collectors`_ will provide their output in non-verbose format.
+The verbose format can be requested by adding the parameter ``verbose=1`` to the
+request.
+
+``/1/report/[category]/[collector_name]``
++++++++++++++++++++++++++++++++++++++++++
+Returns the report of the collector ``[collector_name]`` that belongs to the
+specified ``[category]``.
+
+If a collector does not belong to any category, ``collector`` will be used as
+the value for ``[category]``.
+
+`Status reporting collectors`_ will provide their output in non-verbose format.
+The verbose format can be requested by adding the parameter ``verbose=1`` to the
+request.
+
+Further information can be found in the Ganeti Monitoring Agent
+design document.
+
 .. vim: set textwidth=72 :
 .. Local Variables:
 .. mode: rst