Ceilometer + Gnocchi Integration


Remember that custom modification may result in conflicts with upstream upgrades. If not intended to be merged with upstream, it’s advisable to directly create resource-types via Gnocchi API.

Managing Resource Types

Resource types in Gnocchi are managed by Ceilometer. The following describes how to add/remove or update Gnocchi resource types to support new Ceilometer data.

The modification or creation of Gnocchi resource type definitions are managed resources_update_operations of ceilometer/gnocchi_client.py.

The following operations are supported:

  1. Adding a new attribute to a resource type. The following adds flavor_name attribute to an existing instance resource:

{"desc": "add flavor_name to instance",
 "type": "update_attribute_type",
 "resource_type": "instance",
 "data": [{
     "op": "add",
     "path": "/attributes/flavor_name",
     "value": {"type": "string", "min_length": 0, "max_length": 255,
               "required": True, "options": {'fill': ''}}
  1. Remove an existing attribute from a resource type. The following removes server_group attribute from instance resource:

{"desc": "remove server_group to instance",
 "type": "update_attribute_type",
 "resource_type": "instance",
 "data": [{
     "op": "remove",
     "path": "/attributes/server_group"
  1. Creating a new resource type. The following creates a new resource type named nova_compute with a required attribute host_name:

{"desc": "add nova_compute resource type",
 "type": "create_resource_type",
 "resource_type": "nova_compute",
 "data": [{
     "attributes": {"host_name": {"type": "string", "min_length": 0,
                    "max_length": 255, "required": True}}


Do not modify the existing change steps when making changes. Each modification requires a new step to be added and for ceilometer-upgrade to be run to apply the change to Gnocchi.

With accomplishing sections above, don’t forget to add a new resource type or attributes of a resource type into the ceilometer/publisher/data/gnocchi_resources.yaml.