CloudKitty 概念

本页提供了 CloudKitty 中使用的概念定义。 建议您熟悉这些概念。

Rating(评级)

这是一个将 价值分配给计算资源消耗的过程。 CloudKitty 使用评级服务。 因此,可以配置要收集/监控的服务,然后通过其流程,我们可以为服务消耗分配货币价值。

分配的 价值 可用于表示任何货币的货币价值。 但是,CloudKitty 没有本机模块来执行转换和应用任何汇率。 将 价值映射/链接到实际货币费用的过程由运营商在配置 CloudKitty 时决定。

模块

模块定义了启用的评级过程。 要了解更多关于评级模块的信息,请参阅 评级模块

服务

服务定义了存储后端中收集的指标,然后由 CloudKitty 对其进行评级。 需要通过 API 定义服务,以便稍后由评级模块处理,并在收集器中配置以进行捕获。 服务配置为在 metrics.yml 文件中收集。 关于服务创建的更多信息可以在 服务配置页面 找到。

组织

组定义了可以一起操作的服务集合。 组直接链接到评级规则,而不是链接到服务或字段。 因此,如果我们要将一组规则分组以一起列出或删除,我们可以创建一个组并将它们添加到该组,但最终资源将基于服务、字段和评级规则进行计费。

字段

字段定义了与服务收集一起检索的属性,可用于激活评级规则。

PyScripts

这是一种编写评级规则的替代方法。 在编写 PyScript 时,将能够处理完整的评级过程。 因此,无需在 CloudKitty 中创建服务、字段和组。 PyScript 逻辑应处理所有这些。

评级规则

评级规则是用于创建收费(为计算资源消耗分配价值)的表达式。 可以使用 PyScripts 或使用字段、服务和组以及哈希映射评级规则来创建评级规则。 您可以为评级规则(PyScripts 和哈希映射)定义 startend 日期,这些日期定义了它们有效和应用于评级过程的期间。 如果未定义 startend 日期,则它们将分别设置为规则的创建日期和 NoneNone 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