OSprofiler 通知插件¶
https://blueprints.launchpad.net/ceilometer/+spec/osprofiler-plugin
本规范是关于 osprofiler 和 ceilometer 的集成。实际上,osprofiler 需要某种通知 API 和收集器,而这正是 Ceilometer 所提供的。
更多关于 OSprofiler 的信息:https://github.com/stackforge/osprofiler
问题描述¶
在 OpenStack 中,每个项目内部都有许多服务。很难理解您的请求在哪里以及为什么运行缓慢。为了解决这个问题,我们引入了一个小型库,可以轻松集成到所有现有服务中,并允许我们为每个 API 请求获取一个跟踪(元素树)。与其解释不如展示一个例子:http://pavlovic.me/rally/profiler/
为了解决此任务,我们需要从所有服务发送到某个公共收集器的特殊通知。由于已经存在集成了所有内容并且具有完美适用于我们的通知 API 的 Ceilometer,因此我们决定使用它(Ceilometer)。
提议的变更¶
添加一个新的 Ceilometer 通知插件,用于收集与 profiler 相关的通知。
替代方案¶
创建另一个通知收集器(Ceilometer)并将其集成到所有项目中;)
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
Pipeline 影响¶
无
其他最终用户影响¶
无
性能/可扩展性影响¶
这取决于您如何使用 osprofiler。默认情况下,即使一切都已启用,osprofiler 也不会发送任何通知。profiler 仅在知道 hmac 密钥的人通过特殊标头发送特殊跟踪信息时才会发送通知。
将发送的数据量取决于 API 请求。最糟糕的 API 调用之一是启动虚拟机。如果我们跟踪所有 rest/rpc/db 调用,它将大约产生 150kb 的样本。请注意,禁用数据库跟踪可以减少多次分析数据的量。
警告
不要跟踪每个请求,特别是像“nova boot VM”这样的请求。
妥善保管 hmac 密钥,如果有人知道它,他可以为每个请求创建跟踪,换句话说,DDOS Ceilometer。
其他部署影响¶
无
开发者影响¶
无
实现¶
负责人¶
- 主要负责人
Boris Pavlovic <boris@pavlovic.me>
工作项¶
添加新的通知插件(已完成):https://review.openstack.org/#/c/100239/
在 devstack 中默认启用它
未来生命周期¶
此插件对于 OSprofiler 至关重要,而 OSprofiler 对于 OpenStack 至关重要。因此,此代码将得到完全支持。
依赖项¶
没有依赖项。
测试¶
对于开始阶段,我们将只进行单元测试。实际上,代码很简单,不需要功能测试,而且此代码也不会经常更改(或者根本不会更改)。
单元测试足以的第二个原因是,此插件将在 rally gates 中被大量使用。因此,如果出现问题,我们会很快发现它。
文档影响¶
添加警告,profiler 会给 Ceilometer 后端带来巨大的负载。这意味着不应为每个请求启用它。我们还应该说明,如果关闭数据库请求的跟踪,可以大大减少负载。
参考资料¶
OSprofiler 库:https://github.com/stackforge/osprofiler
oslo.messaging 通知 api 用于 osprofiler:http://goo.gl/nCK21D
Cinder 集成:http://goo.gl/yY42jd