On Fri, Sep 27, 2013 at 4:22 PM, Spyros Trigazis <[email protected]> wrote:

>
> Στις 27 Σεπ 2013, 4:20 μ.μ., ο/η Michele Tartara <[email protected]>
> έγραψε:
>
> On Fri, Sep 27, 2013 at 12:01 PM, Spyros Trigazis <[email protected]>wrote:
>
>> Update hail, hbal and htools man-pages to include the use of data
>> provided by MonD.
>>
>> Signed-off-by: Spyros Trigazis <[email protected]>
>> ---
>>  man/hail.rst   |   23 +++++++++++++++++++++++
>>  man/hbal.rst   |   28 +++++++++++++++++++++++++++-
>>  man/htools.rst |   19 +++++++++++++++++++
>>  3 files changed, 69 insertions(+), 1 deletion(-)
>>
>> diff --git a/man/hail.rst b/man/hail.rst
>> index 72733a2..9efe16d 100644
>> --- a/man/hail.rst
>> +++ b/man/hail.rst
>> @@ -27,6 +27,10 @@ on stderr and the exit code is changed to show failure.
>>  If the input file name is ``-`` (a single minus sign), then the request
>>  data will be read from *stdin*.
>>
>> +Apart from input data, hail collects data over the network from all
>> +MonDs with the --mond option. Currently it uses only data produced by
>> +the CPUload collector.
>> +
>>  ALGORITHM
>>  ~~~~~~~~~
>>
>> @@ -75,6 +79,25 @@ The options that can be passed to the program are as
>> follows:
>>    in the JSON request itself. This is mostly used for debugging. The
>>    format of the file is described in the man page **htools**\(1).
>>
>> +\--mond
>> +  If given the program will query all MonDs to fetch data from the
>> +  supported data collectors over the network.
>> +
>> +\--mond-data *datafile*
>> +  The name of the file holding the data provided by MonD, to override
>> +  quering MonDs over the network. This is mostly used for debugging.
>> +  The file must be in JSON format and present an array of JSON objects
>> +  with two pairs, one for every node. The first pair is the name of the
>> +  node and the second is an array of report objects. Further information
>> +  about the format of the report object can be found in the Ganeti
>> +  Monitoring Agent design document.
>> +
>> +\--ignore-dynu
>> +  If given, all dynamic utilisation information will be ignored by
>> +  assuming it to be 0. This option will take precedence over any data
>> +  passed by the MonDs with the ``--mond`` and the ``--mond-data``
>> +  option.
>> +
>>  \--simulate *description*
>>    Backend specification: similar to the **-t** option, this allows
>>    overriding the cluster data with a simulated cluster. For details
>> diff --git a/man/hbal.rst b/man/hbal.rst
>> index 218ff56..77748f3 100644
>> --- a/man/hbal.rst
>> +++ b/man/hbal.rst
>> @@ -58,6 +58,10 @@ reasonably fast. It is not, however, designed to be a
>> perfect algorithm:
>>  it is possible to make it go into a corner from which it can find no
>>  improvement, because it looks only one "step" ahead.
>>
>> +The program accesses the cluster state via Rapi or Luxi. It also
>> +requests data over the network from all MonDs with the --mond option.
>> +Currently it uses only data produced by CPUload collector.
>> +
>>  By default, the program will show the solution incrementally as it is
>>  computed, in a somewhat cryptic format; for getting the actual Ganeti
>>  command list, use the **-C** option.
>> @@ -121,6 +125,7 @@ following components:
>>    primary instances of the node)
>>  - standard deviation of the dynamic load on the nodes, for cpus,
>>    memory, disk and network
>> +- standard deviation of the CPU load provided by MonD
>>
>>  The free memory and free disk values help ensure that all nodes are
>>  somewhat balanced in their resource usage. The reserved memory helps
>> @@ -159,6 +164,13 @@ different), and that they are normalised to between
>> zero and one. Note
>>  that it's recommended to not have zero as the load value for any
>>  instance metric since then secondary instances are not well balanced.
>>
>> +The CPUload from MonD's data collector will be used only if all MonDs
>> +are running, otherwise it won't affect the cluster score. Since we can't
>> +find the CPU load of each instance, we can assume that the CPU load of
>> +an instance is proportional to the number of its vcpus. With this
>> +heuristic, instances from nodes with high CPU load will tend to move to
>> +nodes with less CPU load.
>> +
>>  On a perfectly balanced cluster (all nodes the same size, all
>>  instances the same size and spread across the nodes equally), the
>>  values for all metrics would be zero. This doesn't happen too often in
>> @@ -320,7 +332,8 @@ The options that can be passed to the program are as
>> follows:
>>  \--ignore-dynu
>>    If given, all dynamic utilisation information will be ignored by
>>    assuming it to be 0. This option will take precedence over any data
>> -  passed by the ``-U`` option.
>> +  passed by the ``-U`` option or by the MonDs with the ``--mond`` and
>> +  the ``--mond-data`` option.
>>
>>  -S *filename*, \--save-cluster=*filename*
>>    If given, the state of the cluster before the balancing is saved to
>> @@ -336,6 +349,19 @@ The options that can be passed to the program are as
>> follows:
>>    other backends must be selected. The option is described in the man
>>    page **htools**\(1).
>>
>> +\--mond
>> +  If given the program will query all MonDs to fetch data from the
>> +  supported data collectors over the network.
>> +
>> +\--mond-data *datafile*
>> +  The name of the file holding the data provided by MonD, to override
>> +  quering MonDs over the network. This is mostly used for debugging.
>> +  The file must be in JSON format and present an array of JSON objects
>> +  with two pairs, one for every node. The first pair is the name of the
>> +  node and the second is an array of report objects. Further information
>> +  about the format of the report object can be found in the Ganeti
>> +  Monitoring Agent design document.
>> +
>>  -m *cluster*
>>    Backend specification: collect data directly from the *cluster* given
>>    as an argument via RAPI. The option is described in the man page
>> diff --git a/man/htools.rst b/man/htools.rst
>> index ecd5ece..16e0b94 100644
>> --- a/man/htools.rst
>> +++ b/man/htools.rst
>> @@ -219,6 +219,25 @@ support all options. Some common options are:
>>    - vcpu ratio
>>    - spindle ratio
>>
>> +\--mond
>> +  If given the program will query all MonDs to fetch data from the
>> +  supported data collectors over the network.
>> +
>> +\--mond-data *datafile*
>> +  The name of the file holding the data provided by MonD, to override
>> +  quering MonDs over the network. This is mostly used for debugging.
>> +  The file must be in JSON format and present an array of JSON objects
>> +  with two pairs, one for every node. The first pair is the name of the
>> +  node and the second is an array of report objects. Further information
>> +  about the format of the report object can be found in the Ganeti
>> +  Monitoring Agent design document.
>>
>
> In general, we don't want to refer to design documents, because they are
> meant for developers and not for end users, therefore they might
> theoretically also not be distributed at all.
> What should be done here, is following the approach of the
> doc/monitoring-query-format.rst file: the part of the design document
> describing the format is extracted into a separate file, and then included
> with the
>  .. include::
> directive both in the Monitoring Agent design document and in this manpage.
>
>
> The syntax for the man pages is the same? Although I don't get any errors,
> the
> content of the included file doesn't show up.
>

Yes, it should be the same. I know of no difference for man pages.


>
> Where I should include it? Directly after --mond-data option?
>

That would be the most convenient thing, but I think it would be "too much"
text, added there. Probably adding a new subsection after all the
parameters and then a reference here is better.


>
>
>> +
>> +\--ignore-dynu
>> +  If given, all dynamic utilisation information will be ignored by
>> +  assuming it to be 0. This option will take precedence over any data
>> +  passed by the ``-U`` option (available with hbal) or by the MonDs with
>> +  the ``--mond`` and the ``--mond-data`` option.
>> +
>>  -m *cluster*
>>    Backend specification: collect data directly from the *cluster* given
>>    as an argument via RAPI. If the argument doesn't contain a colon (:),
>> --
>> 1.7.10.4
>>
>>
> Rest LGTM, thanks.
>
> Michele
>
>
> Thanks,
> Spyros
>
>
> --
> Google Germany GmbH
> Dienerstr. 12
> 80331 München
>
> Registergericht und -nummer: Hamburg, HRB 86891
> Sitz der Gesellschaft: Hamburg
> Geschäftsführer: Graham Law, Christine Elizabeth Flores
>
>
>
Thanks,
Michele

-- 
Google Germany GmbH
Dienerstr. 12
80331 München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Graham Law, Christine Elizabeth Flores

Reply via email to