Gnocchi is a component of the OpenStack cloud computing platform that provides a time-series database service for storing and querying metrics and measurements. It is designed to handle large-scale metrics and measurements from various sources in a distributed and scalable manner. Gnocchi was introduced as an official OpenStack project starting from the Newton release in 2016.
Here are some key details about Gnocchi:
- Data Model: Gnocchi organizes data into a hierarchical structure. The top-level entity is a “resource,” which represents an identifiable object in the system (e.g., a virtual machine, storage volume, or network port). Each resource can have multiple associated “metrics,” which are the actual time-series data points. Metrics can be created, updated, and deleted independently.
- Storage Backend: Gnocchi supports multiple storage backends for storing metrics and metadata. The default backend is based on SQLAlchemy, which uses a SQL database (such as MySQL or PostgreSQL) to store the data. Alternatively, Gnocchi can be configured to use a Swift object storage backend, where each metric is stored as a separate object in Swift.
- Aggregation and Archive Policy: Gnocchi supports configurable aggregation and archive policies. Aggregation allows reducing the granularity of metrics over time by consolidating multiple data points into fewer, more representative points. Archive policies define how long the data should be stored at different aggregation levels. Gnocchi supports various aggregation methods, including mean, sum, max, min, etc.
- Rollup: Gnocchi employs a “rollup” mechanism to efficiently process and store metrics. Rollup involves periodically aggregating and compressing data points to reduce storage requirements and improve query performance. By default, Gnocchi rolls up metrics every 5 minutes, but this interval can be customized.
- Resource Indexer: Gnocchi maintains a resource indexer that provides efficient indexing and querying capabilities for resources and associated metrics. It allows filtering and searching for resources based on attributes and metadata, making it easier to retrieve specific sets of metrics.
- Integration with OpenStack: Gnocchi is tightly integrated with other OpenStack components. It can collect metrics from various OpenStack services, such as Nova (compute), Cinder (block storage), Neutron (networking), and more. Gnocchi can also leverage the Identity service (Keystone) for authentication and authorization.
- API and CLI: Gnocchi provides a RESTful API and a command-line interface (CLI) for interacting with the service. Users can create, update, and query resources and metrics using these interfaces. Gnocchi also supports authentication and RBAC (Role-Based Access Control) to ensure secure access to the data.
- Data Retention and Cleanup: Gnocchi allows configuring data retention policies to define how long data should be retained at different aggregation levels. It provides mechanisms for data cleanup to remove expired or unnecessary metrics from the storage backend.
Gnocchi provides a robust and scalable solution for storing and querying time-series data in an OpenStack environment. It offers a flexible data model, configurable aggregation policies, and integration with other OpenStack services, making it a valuable component for monitoring and analytics applications within the OpenStack ecosystem.
It is no longer maintained by Openstack community and retired.