Sunteți pe pagina 1din 23

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
Loads all plugins in ceilometer.poll.compute call get_counters() Method from the plugins

Plugin 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/

S-ar putea să vă placă și