来自 OpenDaylight 的网络统计信息¶
https://blueprints.launchpad.net/ceilometer/+spec/network-statistics-from-opendaylight
此特性建议添加一个 ceilometer 驱动程序,使用 OpenDaylight 中 network-statistics 模块暴露的 REST API 来收集网络统计信息。
问题描述¶
OpenDaylight 收集并存储网络统计信息,并通过其北向 REST API 公开这些信息。例如,通过 neutron 服务创建的端口接收或发送的数据包数量就是此类统计信息之一。
OpenDaylight 接收的大部分网络配置都来自 OpenStack。在 OpenStack-OpenDaylight 部署中,能够通过 ceilometer API 从 OpenDaylight 读取网络统计信息将非常有益。
ceilometer 中已经存在一个驱动程序,可以从 OpenDaylight 收集统计信息。但是,该驱动程序使用的 ODL REST API 在 OpenDaylight 的当前版本(Carbon)中不幸地被移除或维护较少。
我们建议开发 v2 版本的驱动程序,该驱动程序将利用 OpenDaylight 中的一个新统计模块。作为开始,v2 版本的驱动程序当前仅支持旧驱动程序支持的计数器的一个子集。最终,可以增强此驱动程序以支持所有计数器。此 v2 OpenDaylight ceilometer 驱动程序将能够将计数器存储在 MongoDB(或)Gnochhi 收集器中,从而支持 ceilometer 的两种后端。
提议的变更¶
我们建议在 networking-odl 中创建一个新的驱动程序,路径为 networking_odl/ceilometer/network/statistics/opendaylight_v2/
该驱动程序将通过 REST API 与 OpenDaylight 通信以获取统计信息。
我们将支持以下计量器
* 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
新的资源类型将被添加到 /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
替代方案¶
无。
数据模型影响¶
无。
REST API 影响¶
无。
安全影响¶
无。
Pipeline 影响¶
用户需要在 ceilometer 的配置文件(例如 /etc/ceilometer/polling.yaml)的 resources 属性中配置 OpenDaylight REST API 端点信息。例如:
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"
其他最终用户影响¶
无。
性能/可扩展性影响¶
无。
其他部署影响¶
无。
开发者影响¶
无。
实现¶
负责人¶
- 主要负责人
Deepthi V V
- 持续维护者
Deepthi V V
工作项¶
在 networking-odl 中添加新的 OpenDaylight ceilometer 驱动程序
在 devstack 中添加对新驱动程序的支持。
为 ceilometer 中使用 gnocchi 作为后端的 switch.* 计量器提供支持。
新驱动程序的单元测试
未来生命周期¶
无。
依赖项¶
统计模块应在 OpenDaylight Nitrogen 版本中可用。
测试¶
将添加单元测试来测试新的驱动程序。
文档影响¶
添加的指标需要在 测量部分 中记录。
参考资料¶
https://blueprints.launchpad.net/ceilometer/+spec/network-statistics-from-opendaylight