Mitaka 发行说明

6.0.0

新特性

  • 添加了对队列中批量处理消息的支持。这将允许收集器和通知代理每线程获取多个消息,以实现更高效的处理。

  • 为了减少对 Nova API 的负载,添加了一个额外的配置选项来控制发现间隔与指标轮询间隔。如果在 compute 部分配置了 resource_update_interval 选项,则 compute 代理将基于定义的间隔发现新的实例。代理将继续以 pipeline 定义的间隔轮询已发现的实例。

  • [bug 1480333] 支持配置收集器以互斥地捕获事件或指标,而不是始终捕获两者。

  • 添加了对 CORS 的支持。更多信息请参见 [此处]

  • 为了避免额外的查询,在 Gnocchi 调度器中添加了资源缓存支持以提高写入性能。

  • Gnocchi 调度器现在使用客户端而不是直接 HTTP 请求

  • [bug 1518338] 添加了将 SNMP 指标存储在 Gnocchi 中的支持。此功能需要安装 Gnocchi v2.1.0。

  • 添加了对 Keystone v3 身份验证的支持

  • Ceilometer 告警代码已从代码库中完全删除。等效功能由 Aodh 处理。

  • 由于 pyCADF 中的 audit 中间件在 Kilo 周期中已被删除,因此已放弃对 HTTP 调度器中仅 CADF 有效负载的支持。

  • 为了支持线程化方法,Ceilometer 中已删除了 eventlet。

  • 已放弃 RPC 收集器支持。从 Icehouse 周期开始,基于队列的通知发布者和收集器被添加为推荐的替代方案。

  • 添加了对轮询 Neutron 的 LBaaS v2 API 的支持,因为 Neutron 中的 v1 API 已被弃用。v1 和 v2 之间可用相同的指标。

  • [bug 1513731] 在 snmp.yaml 中添加了对硬件 cpu_util 的支持

  • [bug 1506959] 添加了查询与每个资源关联的指标而不是唯一指标集合的支持。通过在请求中添加 unique=True 选项,可以获得该列表。

已知问题

  • Neutron API 并非设计用于轮询。如果启用了对 Neutron 的轮询,Ceilometer 的轮询代理可能会对 Neutron API 产生显著的负载。建议启用专用的 API 用于轮询,同时改进 Neutron 的 API 以处理轮询。

升级说明

  • 配置选项 ‘requeue_event_on_dispatcher_error’ 和 ‘requeue_sample_on_dispatcher_error’ 已启用并删除。

  • 在配置文件的 [notification] 和 [collector] 部分添加了 batch_size 和 batch_timeout 配置选项。batch_size 控制在处理之前获取的消息数量。类似地,batch_timeout 定义了在处理之前等待的时间。

  • 可以修改 api-paste.ini 文件以包含或排除 CORS 中间件。还可以对中间件进行其他配置。

  • 如果使用 ceilometer+gnocchi,gnocchiclient 库现在是必需的。

  • Ceilometer 中的 gnocchi_resources.yaml 应该更新。

  • 为了利用新的策略支持,应相应地更新 policy.json 文件。如果不需要策略更改,现有的 policy.json 文件将继续像以前一样工作。

  • 运行 db-sync 以添加新的索引。

  • 应使用 keystonemiddleware 库中的 audit 中间件来获得类似的支持。

  • 应将代理的 Pipeline.yaml 文件更新为 notifier:// 或 udp:// 发布者。不再支持 rpc:// 发布者。

  • 默认情况下,Ceilometer 将轮询 v2 API。要轮询旧版 v1 API,请将 neutron_lbaas_version=v1 选项添加到配置文件中。

关键问题

  • 以前的配置选项默认值 ‘requeue_sample_on_dispatcher_error’ 和 ‘requeue_event_on_dispatcher_error’ 很容易导致数据丢失:如果调度器未能将数据发送到后端(例如,Gnocchi 宕机),则调度器会引发错误,数据将永久丢失。这是完全不可接受的,不应以这种方式配置 Ceilometer。”

  • [bug 1533787] 修复了在部署多个通知代理时,代理无法正确注册到组的问题。这可能导致转换不正确,因为代理没有协调。仍然建议在 [oslo_messaging_rabbit] 部分设置 heartbeat_timeout_threshold = 0,以便部署多个代理。

  • [bug 1519767] Python <= 2.7.9 中的 fnmatch 功能不是线程安全的。此问题及其潜在的竞争条件现已修复。

错误修复

  • [bug 1531626] 如果未提供大小,请确保聚合器转换器超时生效。

  • [bug 1550436] 在构建解析逻辑时缓存 json 解析器以处理事件和指标定义。这将提高代理启动和设置时间。

  • [bug 1254800] 添加了更好的支持来捕获在创建 event_types 时的竞争条件

  • [bug 1539163] 添加了定义在聚合样本时使用第一个或最后一个时间戳的能力。这将允许在链接转换器时更灵活。

  • [bug 1536338] 添加了一个补丁来修复从 nova api 轮询数据,但由于 nova api 按租户过滤数据,Ceilometer 无法获取任何数据的 broken floatingip pollster。该修复程序将 pollster 更改为使用 neutron api 来获取 floating ip 信息。

  • [bug 1530793] network.services.lb.incoming.bytes 指标先前设置为不正确的类型。它应该是一个 gauge 指标。

  • [bug 255569] 修复 Gnocchi 调度器中的缓存支持。添加了更好的锁定支持以实现更平滑的缓存访问。

  • 修复来自 Heat 的样本以映射到正确的 Gnocchi 资源类型

  • [bug 1523124] 修复 Gnocchi 调度器以支持 UDP 收集器

  • [bug 1542189] 优雅地处理 gnocchi_resources.yaml 中的格式错误的资源定义。当前,我们会在遇到错误资源时引发异常并跳过其余资源。相反,该补丁会跳过错误的资源并继续处理其余定义。

  • [bug 1504495] 配置 Ceilometer 以尽可能处理 policy.json 规则。

  • [bug 1526793] 添加了额外的索引以更好地支持查询事件数据。

  • [bug 1536699] 添加了一个补丁来修复指标定义文件中的 volume 字段查找。如果定义中缺少该字段,它会引发 KeyError 并中止。相反,我们应该跳过缺少的字段指标并继续处理其余定义。

  • [bug 1532661] 修复由于 MongoDB 中存储的大数字导致统计查询失败。来自 MongoDB 的数据作为 Int64 返回给大数字,而需要 int 和 float 类型。将数据转换为适当的类型以处理大数据。

  • [bug 1536498] 添加了一个补丁来修复重复的指标定义导致重复的样本。如果找到重复项,则记录警告并跳过指标定义。请注意,第一个出现的指标将被使用,并且任何后续重复项将被跳过处理。

  • [bug 1388680] 假设在使用 SQL 后端时查询 None 值的能力。

其他说明

  • 通过在配置文件中指定 meter_dispatchers 和 event_dispatchers 来配置各个调度器。

  • 需要受 dogpile.cache 支持的后端才能启用缓存。还需要其他配置 选项