Académique Documents
Professionnel Documents
Culture Documents
Ceilometer
Tong Li (IBM)
Brad Topol (IBM)
Agenda
What is Ceilometer?
Brief history of Ceilometer
Meters of Ceilometer
Workflow
Ceilometer Architect & Building Blocks
Collecting Process
Pipeline
Transformer
Publisher
Collector
Data store drivers
Alarm
Dispatcher
Ceilometer ReSTful API
Ceilometer Python Client
Ceilometer in Devstack
Inter-Component Security & High Availability
Who are the users of OpenStack Ceilometer
Ceilometer Road Map
Q & A (Demo maybe)
Tong Li
IBM senior software engineer
Twitter @email4tong
Email: litong01@us.ibm.com
Brad Topol
IBM distingushed engineer
Twitter @bradtopol
Email: btopol@us.ibm.com
What is Ceilometer?
OpenStack measurement project
Julien Danjou Ceilometer PTL
A system that keeps track of what is happening in
OpenStack clusters. It was originally created for
billing but it has been evolved into an all purpose
measurement repository. It can be extended for
purposes such as performance report,
troubleshooting, capacity analytics, smart
scheduling, optimization, ultimately BIG DATA etc.
Before year 2012 billing has been left out of OpenStack core so far
as it was not the primary problem and was non-trivial, yet almost
every OpenStack deployment needs a way to track usage
information
Started in May 2012 by developers from Canonical, DreamHost,
RedHat, Dell, Intel, AT&T, etc.
Targeted to do metering, rating, billing
Grizzly objective: The project aimed to become the infrastructure to
collect measurements within OpenStack so that no two agents
would need to be written to collect the same data.
Havana objective: remains the same as Grizzly objective plus
become an integrated OpenStack project.
Current PTL: Julien Danjou
91 contributors, 7 core reviewers
Meters of Ceilometer
(from Nova)
Meters of Ceilometer
(from Neutron)
Additional measurements:
http://docs.openstack.org/developer/ceilometer/measurements.html
Workflow
Collect
Transform
Publish
Store
Read
Ceilometer Architecture
Collecting
Notification bus (AMQP)
Nova
API
Neutron
API
Cinder
API
Glance
API
Swift
API
Polling
Publishing
New in
Grizzly
!
Pipeline
Ceilometer
collector & agent
Meter
Transformer
Transformer
Transformer
Publisher
Publisher
Publisher
Receiver
Receiver
Receiver
New in
Grizzly
!
Transformer
Meter
Name=cpu.time
Value=5
Timestamp=T
Meter
Name=cpu.time
Value=20
Timestamp=T+1
Transformer
Meter
Name=cpu.time
Value=80
Timestamp=T+2
Meter
Name=cpu.percentage
Value=9
Timestamp=T+2
New in
Grizzly
!
Publisher
AMQP
signed message
Meter
Ceilometer
RPC
Publisher
Ceilometer
Message queue
Other
Publisher
External system
Billing, monitoring,
alarming, statistics,
capacity planning
Data Store
Message Queue
ceilometer.collector.metering
Meter
Dispatchers
SQL
Database
Default backend
HBase
MongoDB
Database
New in
Grizzly
New in
Havana
IBM DB2
Alarm
New in
Havana
Dispatchers
New in
Havana
Multiple dispatchers support allows Ceilometer to be extended easily with many different outlet
for all meters coming into Ceilometer. Dispatchers can be easily developed and deployed
to add more features. For example, sending email, text messages.
1. Dispatcher only needs to implement one method.
2. By default, database dispatcher is used even if the configuration file has no trace of any
dispatchers.
3. To configure multiple dispatchers:
[ceilometer.dispatcher]
file = ceilometer.collector.dispatcher.file:FileDispatcher
database = ceilometer.collector.dispatcher.database:DatabaseDispatcher
Ceilometer API
HTTP
REST
w/ JSON &
XML
Storage abstraction
layer
Raw events:
GET /v2/meters/vcpus
Statistics (sum, average, min, max):
GET /v2/meters/vcpus/statistics
New in
Grizzly
!
Filter:
GET /v2/meters/vcpus?q.field=project_id&q.value=foobar&q.op=eq
Group statistics by period:
GET /v2/meters/vcpus/statistics?period=3600
Database
Raw events:
/v2/meters/storage.object.size
Ceilometer in Devstack
devstack localrc
Enable the ceilometer metering services
enable_service ceilometer-acompute,ceilometer-acentral,ceilometer-collector
Inter-Component Security
Roadmap
Grizzly
Incubated Project
Integration
with Horizon
Agents for other
components
o Swift
o Ceph?
o Nicira?
SQLAlchemy storage
driver
Multi-Publisher
API v2
o User accessible API
o More aggregation
o Multi-dimension
Havana
Integrated Project
Integration with Horizon
Publishing meters to other
systems
Enhance SQL driver
Alarming
Integration with Heat
Deprecating APIv1
Completing APIv2
Move publishing part to
Oslo and other projects
Tighter integration with
Nova
Nova-scheduler integration
Icehouse
OpenStack Design
Summit in Hong Kong
Questions?
http://launchpad.net/ceilometer
http://docs.openstack.org/developer/ceilometer
http://wiki.openstack.org/ceilometer
Freenode:
Mailing List:
#openstack-metering
openstack-dev [ceilometer]