Gnocchi – Metric as a Service¶
Gnocchi is an open-source, multi-tenant timeseries, metrics and resources database. It provides an HTTP REST interface to create and manipulate the data. It is designed to store metrics at a very large scale while providing access to metrics and resources information and history.
You can read the full documentation online at http://gnocchi.xyz.
Gnocchi’s main features are:
- HTTP REST interface
- Horizontal scalability
- Metric aggregation
- Measures batching support
- Archiving policy
- Metric value search
- Structured resources
- Resource history
- Queryable resource indexer
- Grafana support
- Nagios/Icinga support
- Statsd protocol support
- Collectd plugin support
You can join Gnocchi’s community via the following channels:
Gnocchi has been created to fulfill the need of a time series database usable in the context of cloud computing: providing the ability to store large quantities of metrics. It has been designed to handle large amount of measures being stored, while being performant, scalable and fault-tolerant. While doing this, the goal was to be sure to not build any hard dependency on any complex storage system.
The Gnocchi project was started in 2014 as a spin-off of the OpenStack Ceilometer project to address the performance issues that Ceilometer encountered while using standard databases as a storage backends for metrics. More information are available on Julien’s blog post on Gnocchi.
Comparisons To Alternatives¶
The following table summarises feature comparison between different existing open source time series database. More details are written below, if needed.
|Query interface||REST API||REST API||HTTP||TCP||None|
|Alerting||No (roadmap)||Yes||With Kapacitor||No||No|
Gnocchi vs Prometheus¶
Prometheus is a full-featured solution that includes everything from polling the metrics to storing and archiving them. It offers advanced features such as alerting.
In comparison, Gnocchi does not offer polling has it prefers to leverage existing solutions (e.g. collectd). However, it provides high-availability and horizontal scalablity as well as multi-tenancy.
Gnocchi vs InfluxDB¶
InfluxDB is a time series database storing metrics into local files. It offers a variety of input protocol support and created its own query language, InfluxQL, inspired from SQL. The HTTP API it offers is just a way to pass InfluxQL over the wire. Horizontal scalability is only provided in the commercial version. The data model is based on time series with labels associated to it.
In comparison, Gnocchi offers scalability and multi-tenancy. Its data model differs as it does not provide labels, but resources to attach to metrics.
Gnocchi vs OpenTSDB¶
In comparison, Gnocchi offers a proper query language with more features. The usage of Hadoop might be a show-stopper for many as it’s quite heavy to deploy and operate.
Gnocchi vs Graphite¶
Graphite is essentially a data metric storage composed of flat files (Whisper), and focuses on rendering those timeseries. Each timeseries stored is composed of points that are stored regularly and are related to the current date and time.
In comparison, Gnocchi offers much more scalability, a better file format and no relativity to the current time and date.