On Tue, Feb 19, 2013 at 11:49 PM, Guido Trotter <[email protected]> wrote: > On Tue, Feb 19, 2013 at 3:55 PM, Michele Tartara <[email protected]> wrote: >> Update the monitoring agent design document adding the format of the HTTP >> queries that will have to be used to query the monitoring agent. >> >> Signed-off-by: Michele Tartara <[email protected]> >> --- >> doc/design-monitoring-agent.rst | 54 >> ++++++++++++++++++++++++++++++++++++----- >> 1 file changed, 48 insertions(+), 6 deletions(-) >> >> diff --git a/doc/design-monitoring-agent.rst >> b/doc/design-monitoring-agent.rst >> index 1d41e64..8bf691e 100644 >> --- a/doc/design-monitoring-agent.rst >> +++ b/doc/design-monitoring-agent.rst >> @@ -48,12 +48,6 @@ The monitoring agent system will report on the following >> basic information: >> - Node OS resources report (memory, CPU, network interfaces) >> - Information from a plugin system >> >> -Format of the query >> -------------------- >> - >> -The query will be an HTTP GET request on a particular port. At the >> -beginning it will only be possible to query the full status report. >> - >> Format of the report >> -------------------- >> >> @@ -569,6 +563,54 @@ node RAID is outside the scope of this, and can be >> implemented as a >> plugin) but we can easily just report the information above, since it's >> standard enough across all systems. >> >> +Format of the query >> +------------------- >> + >> +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 following paragraphs will present the existing resources supported by >> the >> +current protocol version, that is version 1. >> + >> +``/`` >> ++++++ >> +The root resource. It will return the list of the supported protocol version >> +numbers. >> + >> +Currently, this will include only version 1. >> + >> +``/1`` >> +++++++ >> +Not an actual resource per-se, it is the root of all the resources of >> protocol >> +version 1. >> + >> +If requested through GET, the null JSON value will be returned. >> + >> +``/1/full`` >> ++++++++++++ >> +The full report 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. >> + >> +``/[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. >> + > > Why here we have verbose as a parameter and above we have "/full" as a > resource that does the same thing? >
Never mind, I re-read it and now it's clear. (I was confused about /full). I'm not entirely sure though about a couple of things: - there is no way to get a list of data collectors except by reading the full report - there is no way to know which versions a data collector support (true, now it's only "1") - I am not entirely sure about /1/full VS [category]/[collector_name]... should it be 1/[category]/[collector_name] instead, for example? Thanks, Guido
