Jump to: navigation, search




This feature collects the network information(devices, connect statuses and statistices) via North Bound API from the SDN controller.

  • Supports multi SDN controller types.
  • Allows metering from multi controllers in parallel.
  • Source SDN controllers are allowed multi controller types in parallel.

This is the pollster who will be implemented in the ceilometer agent central.

User Stories

  • Use for optimization of the resource location(e.g. VM)
  • Use for testting route of the virtual network


  • The pollster doesn't call REST API directly, uses the driver that is passed meter name.
  • The driver collects statistics via REST APIs, and returns a volume, a resource ID and a metadata to the pollster.
  • The pollster generates the sample. Parameters are as below:
Parameter Name Value
name meter name
type decided for each meter
unit decided for each meter
volume returnd from driver
user_id None
project_id None
resource_id returnd from driver
resource_metadata returned from driver
timestamp timestamp at running pollster
  • The driver names are specified in "setup.cfg". namespace is "network.statistics.drivers".
  • The endpoints of SDN controllers are specified in resources in "pipline.yaml".


  name: meter_pipeline
  interval: 600
    - "*"
    - opendaylight://
    - trema://
    - rpc://



 - network
  - statistics
   - module for each SDN controller
  • ceilometer.network.statistics
    This module contains following:
    • abstract class for drivers
    • baseclass for pollster classes.
    • fake driver
  • ceilometer.network.statistics.switch
  • ceilometer.network.statistics.port
  • ceilometer.network.statistics.table
  • ceilometer.network.statistics.flow
    Those modules contain pollster classes.
  • module for SDN controller(e.g. ceilometer.network.statistics.opendaylight)
    This module contains folowing:
    • driver
    • utilities for the driver.


These meters are made from OpenFlow Switch Specification 1.0.2 mainly.

Resource Switch ID
Origin pollster
metadata {"controller": SDN controller name, "switch.meta": details of switch}

Meter Unit Type Note
switch switch Gauge Duration of Switch
Switch Port
Resource Switch ID
Origin pollster
metadata {"controller": SDN controller name, "port": port number}

Meter Unit Type Note
switch.port port Gauge Duration of Port

Details of port and port that is connected this port are in resource metadata. e.g. link status, linked node id and etc.
If MAC address and port number of the connecting node are included, the resource metadata is usable to look the topology information.

switch.port.receive.packets packets Cumulative Received Packets
switch.port.transmit.packets packets Cumulative Transmitted Packets
switch.port.receive.bytes B Cumulative Received Bytes
switch.port.transmit.bytes B Cumulative Transmitted Bytes
switch.port.receive.drops packets Cumulative Receive Drops
switch.port.transmit.drops packets Cumulative Transmit Drops
switch.port.receive.errors packets Cumulative Receive Errors
switch.port.transmit.errors packets Cumulative Transmit Errors
switch.port.receive.frame_error packets Cumulative Receive Frame Alignment Errors
switch.port.receive.overrun_error packets Cumulative Receive Overrun Errors
switch.port.receive.crc_error packets Cumulative Receive CRC Errors
switch.port.collision.count count Cumulative Collisions
Switch Table
Resource Switch ID
Origin pollster
metadata {"controller": SDN controller name, "table.id":Table ID}

Meter Unit Type Note
switch.table table Gauge Duration of Table
switch.table.active.entries entries Gauge Active Entries
switch.table.lookup.packets packets Gauge Packet Lookups
switch.table.matched.packets packets Gauge Packet Matches
Switch Flow
Resource Switch ID
Origin pollster
metadata {"controller": SDN controller name, "table.id":Table ID, "flow.id": Flow ID}

Meter Unit Type Note
switch.flow flow Gauge Duration of Flow. * Details of flow is in resource metadata.
switch.flow.duration.seconds sec Gauge Duration(seconds)
switch.flow.duration.nanoseconds ns Gauge Duration(nanoseconds)
switch.flow.packets packets Cumulative Received Packets
switch.flow.bytes B Cumulative Received Bytes