Changes to Telemetry in OpenStack Newton Release
With the OpenStack Newton release, telemetry has been split up into three different services for metrics, alarms and events.
Platform9 Managed OpenStack supports the new alarm service, aodh, and the new metrics service, gnocchi with respect to telemetry APIs in OpenStack.
Before the OpenStack Newton release, all the APIs related to telemetry, that is, metrics, alarms and events were integrated into OpenStack Ceilometer.
What is gnocchi?
gnocchi is metrics data as a service.
gnocchi is able to store large amount of metrics, while being scalable, performant and fault-tolerant.
For each data point, gnocchi stores only the timestamp and measurement in compressed form as against Ceilometer, which stores the resource metadata and metrics metadata as well, apart from the timestamp and measurement.
There are differences in the way the gnocchi APIs query the database vis-a-vis the Ceilometer legacy APIs for metrics . For instance, you can list resources by type, get detailed information about resources, and view metrics information with gnocchi APIs. This is not possible with the Ceilometer legacy APIs for metrics.
You can configure the aggregation and storage of your metrics in gnocchi by using an archive policy.
By default, low, medium or high archive policies are available in gnocchi. The Platform9 Managed OpenStack default archive policy for gnocchi is low. Low archive policy provides 5 minutes granularity over 30 days . You can configure a custom archive policy in gnocchi, to suit your requirement. Refer to the article about gnocchi archive policy for details.
For information on gnocchi APIs, visit the gnocchi documentation.
What is aodh?
aodh is the alarm service that uses Ceilometer or gnocchi as the backend storage.
aodh facilitates configuration of new alarm types with gnocchi metrics.
You can configure an aodh alarm such that the triggering of the alarm sends notifications to log files, or redirects users to an HTTP URL.
You can set alarms on one or more gnocchi-based metrics with aodh. While setting such an alarm, the granularity of the alarm must match the granularity of the metrics configured in gnocchi.
The supported threshold alarms are as follows.
- gnocchi_resources_threshold_rule
- gnocchi_aggregation_by_metrics_threshold_rule
- gnocchi_aggregation_by_resources_threshold_rule
Let us look at an example that makes use of aodh to set a threshold-rule alarm.
Use the following code to create a threshold-rule alarm that fires when the average CPU utilization for an individual instance exceeds 80% for two consecutive 10-minute periods, and logs the triggered alarm into a log file.
[code lang=”bash”]aodh alarm create –name cpu_hi \–type gnocchi_resources_threshold \
–description ‘instance running hot’ \
–metric cpu_util –threshold 80.0 \
–comparison-operator gt –aggregation_method avg \
–granularity 600 –evaluation-periods 2 \
–alarm-action ‘log://’ –resource_id INSTANCE_ID[/code]
For more information on aodh and aodh APIs, visit the aodh documentation.
Platform9 recommends that you use the aodh APIs for alarm services and gnocchi APIs for metrics services, instead of the deprecated Ceilometer APIs.
Note: The legacy APIs for Ceilometer alarm and metric services have been deprecated. Support for the legacy APIs will be discontinued in the future releases of Platform9 Managed OpenStack.