[telemetry] Gnocchi: Aggregates Operation Syntax
Yes, aggregate syntax documentation has room for improvement. However,
Gnocchi's API documentation has a rather useful list of supported
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))'
You can even divide the figures by one billion, which converts
nanoseconds to seconds:
Â Â Â gnocchi aggregates '(/ (aggregate sum (metric cpu max))
If that works, it should not be too hard to do something equivalent for
memory and storage.
On 8/5/2019 5:43 PM, Blom, Merlin, NMU-OI wrote:
> 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:
> Searching for more information I found a GitHub Issue:
> 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...