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
 ?

or

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?

Thanks,

syd

Syd Logan
Principal Engineer
Network Switching Software
Broadcom Corporation
Direct: 858-521-5101
Cell: 858-432-8597

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to