CloudKitty 概念¶
本页提供了 CloudKitty 中使用的概念定义。 建议您熟悉这些概念。
Rating(评级)¶
这是一个将 价值分配给计算资源消耗的过程。 CloudKitty 使用评级服务。 因此,可以配置要收集/监控的服务,然后通过其流程,我们可以为服务消耗分配货币价值。
分配的 价值 可用于表示任何货币的货币价值。 但是,CloudKitty 没有本机模块来执行转换和应用任何汇率。 将 价值映射/链接到实际货币费用的过程由运营商在配置 CloudKitty 时决定。
模块¶
模块定义了启用的评级过程。 要了解更多关于评级模块的信息,请参阅 评级模块 。
服务¶
服务定义了存储后端中收集的指标,然后由 CloudKitty 对其进行评级。 需要通过 API 定义服务,以便稍后由评级模块处理,并在收集器中配置以进行捕获。 服务配置为在 metrics.yml 文件中收集。 关于服务创建的更多信息可以在 服务配置页面 找到。
组织¶
组定义了可以一起操作的服务集合。 组直接链接到评级规则,而不是链接到服务或字段。 因此,如果我们要将一组规则分组以一起列出或删除,我们可以创建一个组并将它们添加到该组,但最终资源将基于服务、字段和评级规则进行计费。
字段¶
字段定义了与服务收集一起检索的属性,可用于激活评级规则。
PyScripts¶
这是一种编写评级规则的替代方法。 在编写 PyScript 时,将能够处理完整的评级过程。 因此,无需在 CloudKitty 中创建服务、字段和组。 PyScript 逻辑应处理所有这些。
评级规则¶
评级规则是用于创建收费(为计算资源消耗分配价值)的表达式。 可以使用 PyScripts 或使用字段、服务和组以及哈希映射评级规则来创建评级规则。 您可以为评级规则(PyScripts 和哈希映射)定义 start 和 end 日期,这些日期定义了它们有效和应用于评级过程的期间。 如果未定义 start 或 end 日期,则它们将分别设置为规则的创建日期和 None。 None end 日期表示评级规则将无限期持续。 如果您确实需要这样做,可以使用 force 标志在创建规则时强制将 start 日期设置为过去日期。 一旦规则开始运行(规则的 start > 当前日期),您将无法再更新该规则。 在这种情况下,如果您需要更改规则的值,则需要删除它并使用新值重新创建它。
如果为服务配置了哈希映射配置,并且为属于同一服务的字段配置了另一个哈希映射配置,则用户将被收取两次费用,一次用于服务,另一次用于激活与服务链接的评级规则的字段。
评级类型¶
评级类型是用于确定集合后端中服务定义的表达式。 例如,可以在 metrics.yml 文件中使用以下语法。 dynamic_pollster.compute.services.instance.status 条目是评级类型的定义。 在这里显示的示例中,定义了两种评级类型,一种称为 instance-usage-hours,另一种称为 instance-operating-system-license。 评级类型在 CloudKitty API 中配置为服务。 如果未配置它们,则它们将不会被使用哈希映射定义的评级规则评级。 因此,它们将被收集并以价值(价格)零进行持久化。
metrics:
dynamic_pollster.compute.services.instance.status:
- unit: instance
alt_name: instance-usage-hours
description: "compute"
groupby:
- id
- display_name
- flavor_id
- flavor_name
- user_id
- project_id
- revision_start
- availability_zone
metadata:
- image_ref
- flavor_vcpus
- flavor_ram
- operating_system_name
- operating_system_distro
- operating_system_type
- operating_system_version
- mssql_version
extra_args:
aggregation_method: max
resource_type: instance
use_all_resource_revisions: false
- unit: license-hours
alt_name: "instance-operating-system-license"
description: "license"
groupby:
- id
- display_name
- flavor_id
- flavor_name
- user_id
- project_id
- revision_start
- availability_zone
- operating_system_distro
- operating_system_name
metadata:
- image_ref
- flavor_vcpus
- flavor_ram
- operating_system_type
- operating_system_version
extra_args:
aggregation_method: max
resource_type: instance
use_all_resource_revisions: false