OpenStack Ceilometer Lucas Graf, ZHAW, graflu0@students.zhaw.ch Toni Zehnder, ZHAW, zehndton@students.zhaw.ch
Intro Beginning 2012: Billing left out of OpenStack core But almost every deployment needs to track usage information Ceilometer started in May 2012 Written in Python Main targets of Ceilometer in the beginning: unique point of contact for billing systems easy to extend collectors should be independent
What? Metering Measure the use of resources Data for billing Monitoring Is the system running? Notice system failures Ceilometer currently: metering future: collect data for monitoring
Why? Metering and Monitoring is important... Billing and Rating Know how many resources are available Is the infrastructure currently big enough? How many tenants could be served? Are there any bottlenecks? Prove that a system is running Are all hard disks running? Are the temperatures in the correct range?
v0.1 Folsom Delivered in Oct 2012 Collects base metering nova (instance, memory, cpu,...) glance (image, image size,...) cinder (volume, volume size) quantum (duration of network)
Grizzly Release 4th April 2013 Incubated Project Integration in Horizon Multi-Publisher API v2 support
Havana Release Fall 2013 Integration with Synaps Integration with Healthnmon (alerting) ICCLab Hardware agent...
Architecture: Big Picture
Architecture Two main behaviours Polling Flow Used disk space RAM usage Processor usage... Notification Flow Start/Stop VM Create Image...
Poll: 1
Poll: 2
Poll: 3
Notification: 1
Notification: 2
Ceilometer Requirements Database MongoDB SQLAlchemy supported DB Future supported DB drivers: cassandra, hbase Message Queue RabbitMQ Qpid ZeroMQ(not tested)
Using Ceilometer Install manually Collector Compute Agent API Server Install automated devstack http://docs.openstack. org/developer/ceilometer/install.html#configuringdevstack puppet https://github.com/enovance/puppet-ceilometer Request ressources via Web API (RESTful)
Demo: authorization - Key from Keystone curl -d '{"auth": {"tenantname": "admin", "passwordcredentials":{"username": "admin", "password": "admin_pass"}}}' -H "Content-type: application/json" http://192.168.1.1:35357/v2. 0/tokens
API v2 Demo: Request data curl -v -H 'X-Auth-Token: '$KID -X GET http: //192.168.1.2:9000/v2/resources/ (resource_id)/meters/(meter_id)/
Demo: Data sample JSON { } "counter_name": "instance", "counter_type": "gauge", "counter_unit": "instance", "counter_volume": 1.0, "message_id": "5460acc-4fd6-480d-ab18-9735ec7b1996", "project_id": "35b17138-b364-4e6a-a131-8f3099c5be68", "resource_id": "bd9431c1-8d69-4ad3-803a-8d4a6bfd36", "resource_metadata": {}, "source": "openstack", "timestamp": "2013-02-14T15:16:04.773256", "user_id": "efd87807-12d2-4b38-9c70-5f5c2ac427ff"
Extending Agent Plugin Loads all plugins in ceilometer.poll.compute call get_counters() Method from the plugins http://docs.openstack. org/developer/ceilometer/contributing/index. html
ICCLab and Ceilometer Currently Deploying Ceilometer on test bed Future Extend Ceilometer with a hardware agent Collect/Record hardware data Easy to extend new Plugins for collecting data such as IPMI, SMART,... In Havana Release
Thanks! Questions?
Source https://docs.google. com/presentation/d/1daoud_sm9cc2vlh801_cf_zw0rlscs2cmefrtw61 uug/edit#slide=id.p http://ceilometer.readthedocs.org/en/latest/architecture.html https://fosdem. org/2013/schedule/event/openstack_ceilometer/attachments/slides/217/ex port/events/attachments/openstack_ceilometer/slides/217/ceilometer.pdf http://docs.openstack.org/developer/ceilometer/