Network Statistics From OpenDaylight¶
This feature proposes to add a ceilometer driver to collect network statistics information using REST APIs exposed by network-statistics module in OpenDaylight.
OpenDaylight collects and stores network statistics information and exposes the same via its northbound REST APIs. An example of such statistics is number of packets received or transmitted by a port which may be created through neutron service.
A large portion of the network configuration received by OpenDaylight is from OpenStack. It will be good to have the network statistics readable from OpenDaylight via ceilometer APIs in a OpenStack-OpenDaylight deployment.
A driver already exists in ceilometer which collects statistics from OpenDaylight. But that ODL REST APIs used by the driver have been unfortunately removed or less maintained in current release of OpenDaylight which is Carbon.
We propose a v2 version of the driver which will utilize a new statistics module in OpenDaylight. To start with the v2 version of the driver will currently support only a subset of counters that were supported by old driver. Eventually this driver can be enhanced to support all counters. This v2 OpenDaylight ceilometer driver will enable counters to be stored with either MongoDB (or) with the Gnochhi collector thereby supporting both backends for ceilometer.
We propose to create a new driver in networking-odl in networking_odl/ceilometer/network/statistics/opendaylight_v2/
The driver will communicate with OpenDaylight to fetch statistics through REST APIs.
We wil support following meters:
* switch * switch.ports * switch.port * switch.port.uptime * switch.port.receive.drops * switch.port.receive.errors * switch.port.transmit.packets * switch.port.receive.packets * switch.port.transmit.bytes * switch.port.receive.bytes * port * port.uptime * port.receive.drops * port.receive.errors * port.transmit.packets * port.receive.packets * port.transmit.bytes * port.receive.bytes * switch.table.active.entries
New resource types will be added to /etc/ceilometer/gnocchi_resources.yaml:
- resource_type: switch metrics: - 'switch' - 'switch.ports' attributes: controller: resource_metadata.controller - resource_type: switch_port metrics: - 'switch.port' - 'switch.port.uptime' - 'switch.port.receive.drops' - 'switch.port.receive.errors' - 'switch.port.transmit.packets' - 'switch.port.receive.packets' - 'switch.port.transmit.bytes' - 'switch.port.receive.bytes' attributes: switch: resource_metadata.switch port_number_on_switch: resource_metadata.port_number_on_switch neutron_port_id: resource_metadata.neutron_port_id controller: resource_metadata.controller - resource_type: port metrics: - 'port' - 'port.uptime' - 'port.receive.drops' - 'port.receive.errors' - 'port.transmit.packets' - 'port.receive.packets' - 'port.transmit.bytes' - 'port.receive.bytes' attributes: controller: resource_metadata.controller - resource_type: switch_table metrics: - 'switch.table.active.entries' attributes: controller: resource_metadata.controller switch: resource_metadata.switch
Data model impact¶
REST API impact¶
Users will have to configure OpenDaylight REST API endpoint information in resources attribute in configuration file of ceilometer ie /etc/ceilometer/polling.yaml. For eg:
sources: - name: odl_source interval: 600 resources: - opendaylight.v2://127.0.0.1:8080/controller/statistics? auth=basic&user=admin&password=admin&scheme=http meters: - "switch" - "switch.ports" - "switch.port" - "switch.port.uptime" - "switch.port.receive.drops" - "switch.port.receive.errors" - "switch.port.transmit.packets" - "switch.port.receive.packets" - "switch.port.transmit.bytes" - "switch.port.receive.bytes" - "port" - "port.uptime" - "port.receive.drops" - "port.receive.errors" - "port.transmit.packets" - "port.receive.packets" - "port.transmit.bytes" - "port.receive.bytes" - "switch.table.active.entries"
Other end user impact¶
Other deployer impact¶
- Primary assignee:
Deepthi V V
- Ongoing maintainer:
Deepthi V V
Add new ceilometer driver for OpenDaylight in networking-odl
Add support for new driver in devstack.
Provide support for switch.* meters for gnocchi as backend in ceilometer.
Unit tests for new driver
Statistics module should be available in OpenDaylight Nitrogen release.
Unit Tests will be added to test the new driver.
The added metrics will need to be documented in the measurements section.