[openstack-dev] [ceilometer][neutron] question about ceilometer/network/statistics
Syd (Sydney) Logan
slogan at broadcom.com
Mon Jul 13 18:06:24 UTC 2015
I'm trying to get my arms around how to develop ceilometer support for networking related data/counters. Seems like there might be a couple of ways to go about this.
On the one hand, there are the OpenDaylight and opencontrail contributions in https://github.com/openstack/ceilometer/tree/master/ceilometer/network/statistics
There is also the more general notification base class that is discussed somewhat heavily in the ceilometer documentation and in various presentations, and represented by the code here: https://github.com/openstack/ceilometer/blob/master/ceilometer/network/notifications.py
There is a third method, polling, that I will ignore as ceilometer seems to disapprove of its use (notifications to the OSLO bus are preferred).
Neutron seems to have fairly simple, billing-related counters implemented in NetworkNotificationBase (https://github.com/openstack/ceilometer/blob/master/ceilometer/network/notifications.py, currently around line 39).
In https://github.com/openstack/ceilometer/tree/master/ceilometer/network/statistics there are a few python files (e.g., flow.py) that define various counters.
The OpenDaylight and opencontrail contributions use very little of these (e.g., nothing from flow.py) - they just publish some basic SNMP-ish data like received and sent packets.
So, let's say I have network statistics. How do I approach the problem of integrating them with ceilometer?
1) Do I write my own agent and push whatever I want to OSLO bus, ignoring https://github.com/openstack/ceilometer/blob/master/ceilometer/network/notifications.py and what is in https://github.com/openstack/ceilometer/tree/master/ceilometer/network/statistics ?
2) Do I use only what is in https://github.com/openstack/ceilometer/tree/master/ceilometer/network/statistics (e.g., the counters in flow.py, port.py, switch.py, table.py) and write a driver?
If 2), am I expected to add new python files if something I have to publish to ceilometer is not represented by the counters that are already defined?
I believe both opendaylight and opencontrail have ml2 plugins - is this the reason for having ceilometer/network/statistics and driver.py interface? I realize in some sense these are different than say, Cisco nexus in that they are platforms, not switches. Is being a platform with a Neutron plugin the criteria for using driver.py and being located in ceilometer/network/statistics?
How does a Nexus plugin write to ceilometer, if it does? Do they have code that they supply customers or partners that supports ceilometer that fits one of these models but is not checked into openstack git repos?
Network Switching Software
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the OpenStack-dev