Cloudkitty monasca fetcher 实现

https://storyboard.openstack.org/#!/story/2006675

Monasca 已经在 cloudkitty 的 collector 中得到支持。然而,cloudkitty 缺乏一个专门用于 monasca 的 fetcher,而是依赖于其他 fetcher。

问题描述

在使用 monasca collector 时,无法进行 scope 发现。这迫使用户使用 keystone fetcher 并将 ‘rating’ 角色分配给每个需要 cloudkitty 的项目。另一个不太理想的解决方案是使用 ‘source’ fetcher,但这需要在配置文件中指定每个 scope。

提议的变更

实现一个新的 fetcher,使用 monasca 来发现 scopes

  • 该 fetcher 将连接到 monasca 并检索一个 scope 列表(monasca 中的维度值),给定指定的维度名称。这是通过 monasca 的 python 客户端及其 metrics.list_dimension_values() 方法实现的。

  • monasca endpoint 将以类似于 monasca collector 的方式从 keystone 中检索,因为它是 monasca 客户端初始化所必需的。这是一个将 monasca 的客户端引导代码公共化到一个通用文件的良好机会。

配置选项包括

  • dimension_name:要从中检索 scope_ids 的 monasca 维度,默认为 project_id

  • monasca_tenant_id:monasca tenant id,没有默认值。

  • monasca_service_name:monasca 服务名称,默认为 monasca

  • interface:endpoint 类型,默认为 internal

备选方案

数据模型影响

REST API 影响

安全影响

该 fetcher 将使用与当前 monasca collector 相同的身份验证机制(keystone 用于身份验证,python-monascaclient 用于 monasca 交互),并且不会引入任何新的依赖项。因此,新的 fetcher 不应产生任何安全影响。

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

qanglade/qanglade

其他贡献者

lukapeschke/peschk_l

工作项

  • 使用 python-monascaclient 实现一个 cloudkitty monasca scope fetcher。

依赖项

不需要新的依赖项。

测试

将包含常规单元测试。

文档影响

将添加新 fetcher 的文档,主要涵盖 fetcher 的配置。

参考资料

无。