Trove/ceilometer integration
Contents
Ceilometer integration
Description
Use cases
Use cases:
- get stats about instances/backups usage
- get notifications about instance status changes (eg. crash, resize, etc.)
- get notifications about backups status changes
Notifications
Trove should emit notifications in for different events, such as:
- Instance events:
- instance.create.start|end|error
- instance.delete.start|end|error
- instance.resize.start|end|error
- instance.migrate.start|end|error
- instance.reboot(restart?).start|end|error
- Backup events:
- backup.create.start|end|error
- backup.delete.start|end|error
Justification/Benefits
Justification
Trove should emit events for resources as they are manipulated. These events can be used to meter the service and possibly used to calculate bills. Notification Events: trove/trove-notifications
Benefits
- Ability to integrate with Ceilometer
- Ability to integrate with billing systems in terms of Public cloud deployments
Impacts
Existing notifications events are going to be changed:
- create -> instance.create.start|end|error
- delete -> instance.delete.start|end|error
- modify_flavor -> resize.flavor.start|end|error
- modify_volume -> resize.volume.start|end|error
New notifications are going to be added:
- backup.create.start|end|error
- start and/or error notifications are going to be sent by taskmanager
- end and/or error notifications are going to be sent by conductor (because conductor is the only one place to verify that backup was created properly)
- backup.delete.start|end|error (all notifications are emited by taskmanager)
Configuration
No changes
Database
No changes
Public API
New routes
No changes
Modifications to existing
No changes
Internal API
From trove-api to trove-taskamanger
No changes
From trove-taskamanger to trove-guestagent
No changes
Ceilometer plugin
Ceilometer plugin should be implemented right after all notification modifications are merged into Trove codebase Ceilometer blueprint https://blueprints.launchpad.net/ceilometer/+spec/trove-plugin