1 of 29

Ceilometer

The OpenStack Metering Project

15 Oct 2012 @ ODS Grizzly

Doug Hellmann

aka doughellmann/dhellmann (twitter/irc)

doug.hellmann@dreamhost.com

Nick Barcet

aka nijaba (twitter/irc)

nick.barcet@canonical.com

2 of 29

What About Billing?

  • Billing has been left out of OpenStack core so far as it was not the primary problem and is not a trivial one...�
  • Yet almost every OpenStack deployment needs a way to track usage information��

3 of 29

Billing: 3 Step Process

Metering

Collect usage data

Rating

Transform usage data into billable items and calculate costs

Billing

Create invoice, collect payment

4 of 29

Ceilometer is Metering

Usage data collection is the ONLY thing common to all clouds

5 of 29

Uses for Metering

  • Billing
  • Auditing
  • Capacity Planning

6 of 29

Problems to Solve

  • Collecting per user/tenant usage data
    • For every resource
    • From every OpenStack component
    • In a single place

  • Retrieving usage data
    • From a single place

  • Doing this with an open source project
    • Everyone did this in their own corner in the past :-(

7 of 29

Ceilometer Begins

  • Started in May 2012

8 of 29

Ceilometer Rises

  • Developed in StackForge
    • Same process as OpenStack�
  • Minimal set of meters defined

  • Targeting OpenStack core
    • incubation pending

9 of 29

Design Requirements

  • Scalable
    • …if your database is too

10 of 29

Design Requirements

  • Scalable
    • …if your database is too
  • Message signature
    • Non-repudiation built in

11 of 29

Design Requirements

  • Scalable
    • …if your database is too
  • Message signature
    • Non-repudiation built in
  • Only one entry point to get data

12 of 29

Design Requirements

  • Scalable
    • …if your database is too
  • Message signature
    • Non-repudiation built in
  • Only one entry point to get data
  • Extensible, add your own:
    • Agent
    • Agent plugin
    • Storage engine
    • Meters

13 of 29

Design Requirements

  • Scalable
    • …if your database is too
  • Message signature
    • Non-repudiation built in
  • Only one entry point to get data
  • Extensible, add your own:
    • Agent
    • Agent plugin
    • Storage engine
    • Meters
  • Use openstack-common components

14 of 29

Design Requirements

  • Scalable
    • …if your database is too
  • Message signature
    • Non-repudiation built in
  • Only one entry point to get data
  • Extensible, add your own:
    • Agent
    • Agent plugin
    • Storage engine
    • Meters
  • Use openstack-common components
  • Accept data from many sources

15 of 29

Data Triggers

Ceilometer inputs are generated three ways

User Action

Creating, modifying, or deleting a resource

Audit

Regular audit events stating usage generated by the service

Polling

The ceilometer agent asks the service for data periodically

16 of 29

Meter Categories

Ceilometer handles 3 types of meters

Cumulative

Increasing over time (instance hours)

Gauge

Discrete items (floating IPs, image uploads) and fluctuating values (disk I/O)

Delta

Changing over time (bandwidth)

17 of 29

18 of 29

19 of 29

20 of 29

21 of 29

22 of 29

23 of 29

Simple REST API

Sum

GET /v1/resources/(resource)/meters/(meter)/volume/sum

Maximum

GET /v1/resources/(resource)/meters/(meter)/volume/max

Duration

GET /v1/resources/(resource)/meters/(meter)/duration

Raw Events

GET /v1/resources/(resource)/meters/(meter)

http://ceilometer.readthedocs.org/en/latest/api.html

24 of 29

Roadmap

Grizzly

H

Folsom

  • Delivered last week
  • Collects base metering
    • nova
    • glance
    • cinder
    • quantum
  • Basic API access
  • Incubated Project
  • User accessible API?
  • Integration example with Horizon
  • New agents for other openstack components
    • Swift
    • Heat?
  • New uses of collector?
  • SQLAlchemy storage driver
  • Core Project
  • TBD

25 of 29

DreamHost Use Case

  • New Public Cloud Service
  • Existing Billing System
  • Existing Users and Accounts

26 of 29

Configuring Ceilometer

  • Measure exactly what we want to bill for
    • instance hours
    • block storage
    • image uploads
    • bandwidth

27 of 29

Customizing Ceilometer

  • Custom Bandwidth Meter
    • No charge for traffic "inside" DreamHost
    • Don't expose infrastructure details to customers
    • Measure at the router, not the VIF

28 of 29

Consuming Meter Data

29 of 29

Questions?

Nick Barcet

aka nijaba (twitter/irc)

nick.barcet@canonical.com

http://launchpad.net/ceilometer

http://ceilometer.readthedocs.org

freenode: #openstack-metering

email: openstack-dev [ceilometer]

Doug Hellmann

aka doughellmann/dhellmann (twitter/irc)

doug.hellmann@dreamhost.com