[telemetry] Gnocchi: Aggregates Operation Syntax

Bernd Bausch berndbausch at gmail.com
Tue Aug 6 05:48:42 UTC 2019


Yes, aggregate syntax documentation has room for improvement. However, 
Gnocchi's API documentation has a rather useful list of supported 
operations at 
https://gnocchi.xyz/rest.html#list-of-supported-operations. See also my 
recent issue https://github.com/gnocchixyz/gnocchi/issues/1044, which 
helped me understand how aggregation works in Gnocchi.

Note that you can write an aggregate operation as a string using prefix 
notation, or as a JSON structure. On the command line, the string 
version is easier to use in my opinion.

Regarding your use case, allow me to focus on CPU. Ceilometer'/s cpu/ 
metric accumulates the nanoseconds an instance consumes. Try /max/ 
aggregation to look at the CPU usage of a single instance:

     gnocchi measures show --aggregation max --resource-id SERVER_UUID cpu

which is equivalent to

     gnocchi aggregates '(metric cpu max)' id=SERVER_UUID

then use /sum/ aggregation over all instances of a project:

     gnocchi aggregates '(aggregate sum (metric cpu max))' 
project_id=PROJECT_UUID

You can even divide the figures by one billion, which converts 
nanoseconds to seconds:

     gnocchi aggregates '(/ (aggregate sum (metric cpu max)) 
1000000000)' project_id=PROJECT_UUID

If that works, it should not be too hard to do something equivalent for 
memory and storage.

Bernd.

On 8/5/2019 5:43 PM, Blom, Merlin, NMU-OI wrote:
>
> Hey,
>
> I would like to aggregate data from the gnocchi database by using the 
> gnocchi aggregates function of the CLI/API
>
> The documentation does not cover the operations that are available nor 
> the syntax that has to be used:
>
> https://gnocchi.xyz/gnocchiclient/shell.html?highlight=reaggregation#aggregates
>
> Searching for more information I found a GitHub Issue:
>
> https://github.com/gnocchixyz/gnocchi/issues/393
>
> But I cannot use the syntax from that ether.
>
> *My use case:*
>
> I want to aggregate the vcpus hours per month, vram hours per month, … 
> per server or project.
>
> -when an instance is stopped only storage is counted
>
> -the exact usage is used e.g. 2 vcpus between 1^st and 7^th day 4vcpus 
> between 8^th and last month no mean calculations
>
> Do you have detailed documentation about the gnocchi Aggregates 
> Operation Syntax?
>
> Do you have complex examples for gnocchi aggregations? Especially when 
> using the python bindings:
>
> /conn_gnocchi.metric.aggregation(metrics="memory", query=[XXXXXXXX], 
> resource_type='instance', groupby='original_resource_id') /
>
> Can you give me advice regarding my use case? Do's and don'ts…
>
> Thank you for your help in advance!
>
> Merlin Blom
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-discuss/attachments/20190806/baec8b7e/attachment.html>


More information about the openstack-discuss mailing list