计量网络服务 - 虚拟专用网络即服务

https://blueprints.launchpad.net/ceilometer/+spec/ceilometer-meter-vpnaas

问题描述

Ceilometer 目前不支持计量虚拟专用网络即服务 (VPNaaS)。云提供商/运营商需要监控和计量网络服务的各个方面。本规范涉及对虚拟专用网络即服务 (VPNaaS) 进行计量。

提议的变更

用于计量 VPNaaS 的测量指标分为提供商级别和业务级别两类。以下是计划包含在 Ceilometer 中的测量指标

  • 提供商级别指标

    • VPN 类型(Openswan、Cisco 等)- 取决于 neutron 中的 flavor 框架(参见依赖项)

  • 业务级别指标

    • VPN 服务状态

    • 连接数

    • 带宽 - 需要修改 neutron VPNaaS(参见依赖项)

  • 指标定义

名称

类型

单位

来源

network.services.vpn

g

vpn

p

network.services.vpn.type

g

vpn

p

network.services.vpn.connections

g

连接/秒

p

network.services.vpn.incoming.bytes

c

B

p

network.services.vpn.outgoing.bytes

c

B

p

g = gauge(瞬时值), c = cumulative(累积值), p = pollster(轮询器)

  • 状态以枚举式的值形式捕获在样本 volume 中,而不是资源元数据中,针对每个 VPN。

与这些指标相关的资源作为资源发现的一部分被捕获。Neutron 暴露了 API 以捕获这些数据,这些数据通过 Ceilometer 侧的轮询器调用。Neutron 服务侧的通知信息比较有限。随着我们在 Neutron 侧添加这些通知消息,我们将增强 Ceilometer 侧以通过通知处理程序捕获这些事件。

作为 Neutron 侧的参考实现,将有一个 API 调用来检索诸如连接数和带宽之类的统计信息。

替代方案

数据模型影响

REST API 影响

安全影响

Pipeline 影响

需要为每个共享发现扩展的轮询器组在 pipeline.yaml 中包含新的来源。以下是一个示例

sources:
  - name: fw_source
    interval: 600
    meters:
      - "network.services.vpn"
    discovery:
      - "vpn"
    sinks:
      - network_services_sink

类似地,我们将为连接数和带宽提供来源。

其他最终用户影响

最终用户应该能够通过现有的 API 和 CLI 进行交互。

  • 将这些指标暴露在 horizon 仪表板上会很好,但这超出了本规范的范围。

性能/可扩展性影响

此更改不应对性能/可扩展性产生重大影响。

其他部署影响

开发者影响

此功能对开发人员的持续维护应该产生最小的影响

实现

负责人

主要负责人
  • pkilambi

其他贡献者
持续维护者
  • pkilambi

工作项

  • 在 neutron_client.py 中添加 neutron 客户端 API 以查询 VPNaaS 调用

  • 添加新的轮询器和通知处理程序

  • 添加单元/集成测试覆盖

  • 更新测量文档

未来生命周期

围绕 VPNaaS 和其他网络服务的新的测量指标将是网络轮询器和通知的一部分。因此,持续维护将由 Ceilometer 团队处理,包括我自己。

依赖项

测试

将添加单元和集成测试,以涵盖必要的 neutron_client 调用、轮询器和通知。

文档影响

需要更新测量文档,以反映从 VPNaaS API 和通知中捕获的新计量器。

参考资料