Watch


 * Launchpad Entry: NovaSpec:foo or SwiftSpec:foo
 * Created: 02/01/2011
 * Contributors: NTT PF Lab

Summary

 * Record historical statistics of VM to database instead of RRDtool generated graphs.
 * Add API that retrieves the historical data.
 * Tha API design will follow Amazon Cloud Watch API and Amazon EC2 API.

Release Note

 * Add support for Amazon Cloud Watch API.
 * Add Amazon EC2 APIs, MonitorInstances and UnmonitorInstances to OpenStack API.
 * Modify CloudController.run_instances that supports monitoring flag.

Rationale
Nova bulit-in monitoring saves image file that RRDtool generated to remote storage. Historical perfomance data of VM is saved in form of image file threfore It is unable to reuse the captured data. This goal of this project is to bring new features that store statistics to the database and provide the API to retrieve from database. The new features including:

1.Modify Nova Compute Node to collect statistics and record to database. Add table that record historical statiscs to database. Nova Compute Node captures CPU,DiskI/O, and Network of VM periodically then record to database. 2.Add new API that refer historical data. Amazon Cloud Watch API version 2010-08-01 will be supported as follows: Note: Look at the Restriction section for unimplemented features.
 * DescribeAlarms
 * DescribeAlarmsForMetric
 * DescribeAlarmsHistory
 * DisableAlarmActions
 * EnableAlarmActions
 * ListMetrics
 * * PutMetricAlarm

3.Add new APIs that enable/disable monitoring on each instance. Amazon EC2 API version 2010-11-15 will be supported as follows: 4.Append Monitoring.Enabled parameter to CloudController.run_instances in OpenStack API. CloudController.run_instances with Monitoring.Enabled parameter can enable the monitoring just after starting instance. 5.Notification See the Blueprint : link to openstack-sns-blueprint.
 * MonitorInstances
 * UnmonitorInstances

User stories

 * 1) Refer the data that recoded historical statistics with the search conditions.
 * 2) Set the Alarm that let user know the event of crossing over threshold.( example: sending email)
 * 3) User can modify threshold by using API.

Assumptions
TBD

Design
TBD

Implementation
TBD

UI Changes
TBD

Code Changes
TBD

Migration
TBD

Test/Demo Plan
TBD

Unresolved issues
TBD

BoF agenda and discussion
TBD

Restriction
The API following will not be implemented. 1.GetMetricStatistics 1.SetAlarmState