Gnocchi 4.1 is out

Friday 27 October 2017 Gnocchi Comments

We did it again. A bit more of our usual four months were needed to do it, but Gnocchi 4.1 has been released. This is a great news and another big milestone for the project!

As usual, we enhanced Gnocchi and added a bunch of new things that can all be seen in the online changelog. Nevertheless, I would like to talk of a few here!

First, we added notification support to the Redis incoming driver. This feature makes sure that, when using Redis as an incoming measure driver, the metrics as processed as fast as possible, rather than waiting metric_processing_delay. This moves the incoming driver toward more of a push model than a pull model – even if it still uses both. That feature decreases the latency between the time metrics are pushed, and metrics are processed by metricd, which is transcendent.

Secondly, the internal computing engine (measures aggregation) has entirely been ported from Pandas to Numpy. While Pandas is written using Numpy, it does some things more than Numpy itself when used. Those features are beneficial when quickly writing data analysis processes, but are not needed for Gnocchi. They take CPU time, which means less throughput for metricd. Pandas is still needed for the old and deprecated dynamic aggregation feature and will be entirely removed as a dependency in the next version of Gnocchi.

Finally, the biggest functionality that has landed is the new /v1/aggregates endpoint. This is a principal feature that allows to retrieve aggregates but also to do cross-aggregation in new ways that were not possible before. For example, you can request "the absolute value of the average of two metrics being multiplied by" writing: (absolute (* (metric 32dd0731-c423-45aa-94f6-e4069989eb57 mean) (metric 942990de-b208-4bf7-a0ee-93e4890df73a mean))). This endpoint supports fetching any metric from the database (by id or by search in resources) and applying any mathematics operation. The syntax is inspired from Lisp, which makes it easy to write both as a string or as JSON.

Come and join us on GitHub! Star us, and stay tuned for some more awesome news around metrics.