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>

工作项

未来生命周期

此插件对于 OSprofiler 至关重要,而 OSprofiler 对于 OpenStack 至关重要。因此,此代码将得到完全支持。

依赖项

  • 没有依赖项。

测试

对于开始阶段,我们将只进行单元测试。实际上,代码很简单,不需要功能测试,而且此代码也不会经常更改(或者根本不会更改)。

单元测试足以的第二个原因是,此插件将在 rally gates 中被大量使用。因此,如果出现问题,我们会很快发现它。

文档影响

添加警告,profiler 会给 Ceilometer 后端带来巨大的负载。这意味着不应为每个请求启用它。我们还应该说明,如果关闭数据库请求的跟踪,可以大大减少负载。

参考资料