Implements 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. Change-Id: I19918d6378dbcf2a84071c6270b683c71ecf75b1 Implements: blueprint network-statistics-from-opendaylight
This commit is contained in:
parent
d2b1656eb9
commit
a2c55b1d9c
@ -44,6 +44,14 @@ Newton approved specs:
|
||||
|
||||
specs/newton/*
|
||||
|
||||
Pike approved specs:
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
:maxdepth: 1
|
||||
|
||||
specs/pike/*
|
||||
|
||||
==================
|
||||
Indices and tables
|
||||
==================
|
||||
|
242
specs/pike/network-statistics-from-opendaylight.rst
Normal file
242
specs/pike/network-statistics-from-opendaylight.rst
Normal file
@ -0,0 +1,242 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
====================================
|
||||
Network Statistics From OpenDaylight
|
||||
====================================
|
||||
|
||||
https://blueprints.launchpad.net/ceilometer/+spec/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.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
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.
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
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
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
None.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None.
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
Pipeline 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
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
Performance/Scalability Impacts
|
||||
-------------------------------
|
||||
|
||||
None.
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None.
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
Deepthi V V
|
||||
|
||||
Ongoing maintainer:
|
||||
Deepthi V V
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* 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
|
||||
|
||||
Future lifecycle
|
||||
================
|
||||
|
||||
None.
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
Statistics module should be available in OpenDaylight Nitrogen release.
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Unit Tests will be added to test the new driver.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
The added metrics will need to be documented in the `measurements section`_.
|
||||
|
||||
.. _measurements section: http://docs.openstack.org/admin-guide-cloud/telemetry-measurements.html
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
https://blueprints.launchpad.net/ceilometer/+spec/network-statistics-from-opendaylight
|
||||
|
||||
https://git.opendaylight.org/gerrit/#/c/59283/
|
1
specs/pike/template.rst
Symbolic link
1
specs/pike/template.rst
Symbolic link
@ -0,0 +1 @@
|
||||
../template.rst
|
Loading…
Reference in New Issue
Block a user