This new release minor release of Gnocchi has been a bit longer than usual, but here it is!
So what's new in this version of Gnocchi? Well, according to the release notes, not much. There are only two new features:
- gnocchi-injector which allows injecting data for metricd consumption directly. This is useful to test metricd performances.
- The ability for the
/v1/aggregation/resourcesendpoint to read a string rather than a JSON formatted payload for filtering.
Nothing exciting here… however, other changes are not user-visible and are not in those notes:
Performance boost, everywhere!
The storage engine has been largely improved to batch a ton of operations that used to be done on a per-metric basis. When ingesting new measures, Gnocchi was storing those new points in batch. However, the processing done by metricd later was single-metric based for most it. This did not leverage the efficiency that some backend might have and would create more I/O operations than necessary.
Each incoming data sack is now processed in batch mode, making metricd much faster at aggregating metrics data! When doing local benchmarks, some scenario presented an improvement of 8x.
This new storage internal API is not used by the REST API yet, as many operations exposed by the API are oriented for a single metric. That might be a significant improvement for the next version of Gnocchi's API.