CloudKitty REST API (v1)

Collector(收集器)

GET /v1/collector

未使用的函数,用于让 pecan 将请求路由到子控制器。

GET /v1/collector/mappings

返回映射到收集器的每个服务的列表。

参数:
  • collector (str) – 过滤收集器名称。

返回:

服务到收集器的映射集合。

返回类型:

ServiceToCollectorMappingCollection

GET /v1/collector/mappings/(service)

返回服务到收集器的映射。

参数:
  • service (str) – 要过滤的服务名称。

返回类型:

ServiceToCollectorMapping

POST /v1/collector/mappings

创建一个服务到收集器的映射。

参数:
  • collector (str) – 应用映射的收集器名称。

  • service (str) – 应用映射的服务名称。

返回类型:

ServiceToCollectorMapping

DELETE /v1/collector/mappings

删除一个服务到收集器的映射。

参数:
  • service (str) – 要过滤的服务名称。

GET /v1/collector/states

查询收集器的启用状态。

参数:
  • name (str) – 收集器的名称。

返回:

收集器的状态。

返回类型:

CollectorInfos

PUT /v1/collector/states

设置收集器的启用状态。

参数:
  • name (str) – 收集器的名称。

  • infos (CollectorInfos) – 收集器的新的状态信息。

返回:

收集器的状态。

返回类型:

CollectorInfos

type CollectorInfos

描述收集器模块的类型。

数据示例

Json
{
    "enabled": true,
    "name": "gnocchi"
}
XML
b'<value>\n  <name>gnocchi</name>\n  <enabled>true</enabled>\n</value>'
enabled

收集器的状态。

name

收集器的名称。

type ServiceToCollectorMapping

描述服务到收集器映射的类型。

数据示例

Json
{
    "collector": "gnocchi",
    "service": "compute"
}
XML
b'<value>\n  <service>compute</service>\n  <collector>gnocchi</collector>\n</value>'
collector

收集器的名称。

service

服务名称。

type ServiceToCollectorMappingCollection

描述服务到收集器映射集合的类型。

数据示例

Json
{
    "mappings": [
        {
            "collector": "gnocchi",
            "service": "compute"
        }
    ]
}
XML
b'<value>\n  <mappings>\n    <item>\n      <service>compute</service>\n      <collector>gnocchi</collector>\n    </item>\n  </mappings>\n</value>'
mappings

服务到收集器映射列表。

信息

GET /v1/info/config

返回当前配置。

返回类型:

dict(str: None)

GET /v1/info/metric

获取指标列表。

返回:

所有指标的列表。

返回类型:

CloudkittyMetricInfoCollection

GET /v1/info/metric/(metric_name)

返回一个指标。

参数:
  • metric_name (str) – 指标的名称。

返回类型:

CloudkittyMetricInfo

type CloudkittyMetricInfo

描述 CloudKitty 中指标信息的类型。

数据示例

Json
{
    "metadata": [
        "resource_id",
        "project_id",
        "qty",
        "unit"
    ],
    "metric_id": "image.size",
    "unit": "MiB"
}
XML
b'<value>\n  <metric_id>image.size</metric_id>\n  <metadata>\n    <item>resource_id</item>\n    <item>project_id</item>\n    <item>qty</item>\n    <item>unit</item>\n  </metadata>\n  <unit>MiB</unit>\n</value>'
metadata

指标元数据列表

metric_id

指标的名称。

unit

指标单位

type CloudkittyMetricInfoCollection

CloudKittyMetricInfo 的列表。

数据示例

Json
{
    "metrics": [
        {
            "metadata": [
                "resource_id",
                "project_id",
                "qty",
                "unit"
            ],
            "metric_id": "image.size",
            "unit": "MiB"
        }
    ]
}
XML
b'<value>\n  <metrics>\n    <item>\n      <metric_id>image.size</metric_id>\n      <metadata>\n        <item>resource_id</item>\n        <item>project_id</item>\n        <item>qty</item>\n        <item>unit</item>\n      </metadata>\n      <unit>MiB</unit>\n    </item>\n  </metrics>\n</value>'
GET /v1/info/service

获取服务列表(已弃用)。

返回:

每个服务的列表。

返回类型:

CloudkittyMetricInfoCollection

GET /v1/info/service/(service_name)

返回一个服务(已弃用)。

参数:
  • service_name (str) – 服务的名称。

返回类型:

CloudkittyMetricInfo

Rating(评级)

GET /v1/rating/modules

返回已加载的模块列表。

返回:

每个已加载模块的名称。

返回类型:

CloudkittyModuleCollection

GET /v1/rating/modules/(module_id)

返回一个模块

返回:

CloudKittyModule

返回类型:

CloudkittyModule

PUT /v1/rating/modules

更改模块的状态和优先级。

参数:
  • module_id (str) – 要修改的模块的名称

  • module (CloudkittyModule) – 描述新期望状态的 CloudKittyModule 对象

返回类型:

CloudkittyModule

POST /v1/rating/quote

基于多个资源描述获取即时报价。

参数:
返回:

这些描述的总价格。

返回类型:

float

GET /v1/rating/reload_modules

触发评级模块列表重新加载。

type CloudkittyModule

评分扩展摘要

数据示例

Json
{
    "description": "Sample extension.",
    "enabled": true,
    "hot-config": false,
    "priority": 2
}
XML
b'<value>\n  <description>Sample extension.</description>\n  <enabled>true</enabled>\n  <hot-config>false</hot-config>\n  <priority>2</priority>\n</value>'
description

扩展的简短描述。

enabled

扩展状态。

hot_config

即时配置支持。

module_id

扩展的名称。

priority

扩展的优先级。

type CloudkittyModuleCollection

评分扩展的列表。

数据示例

Json
{}
XML
b'<value />'
type CloudkittyResource

描述 CloudKitty 中资源的类型。

数据示例

Json
{
    "desc": {
        "image_id": "a41fba37-2429-4f15-aa00-b5bc4bf557bf"
    },
    "service": "compute",
    "volume": "1"
}
XML
b'<value>\n  <service>compute</service>\n  <desc>\n    <item>\n      <key>image_id</key>\n      <value>a41fba37-2429-4f15-aa00-b5bc4bf557bf</value>\n    </item>\n  </desc>\n  <volume>1</volume>\n</value>'
desc

资源参数的描述。

service

服务名称。

volume

资源的容量。

type CloudkittyResourceCollection

CloudKittyResources 的列表。

数据示例

Json
{}
XML
b'<value />'

报告

GET /v1/report/summary

返回给定时间段的支付摘要。

返回类型:

SummaryCollectionModel

GET /v1/report/tenants

返回已评级的租户列表。

返回类型:

list(str)

GET /v1/report/total

返回给定时间段的应付金额。

返回类型:

Decimal

存储

GET /v1/storage/dataframes

返回一段时间和租户的已评级资源的列表。

参数:
  • begin (datetime) – 时间段的开始

  • end (datetime) – 时间段的结束

  • tenant_id (str) – 用于过滤的租户的 UUID。

  • resource_type (str) – 用于过滤的资源类型。

返回:

DataFrame 对象集合。

返回类型:

DataFrameCollection

type RatedResource

表示评分过的 CloudKitty 资源。

数据示例

Json
{
    "desc": {
        "flavor": "m1.tiny",
        "vcpus": "1"
    },
    "rating": "1.0",
    "service": "compute",
    "volume": "1.0"
}
XML
b'<value>\n  <rating>1.0</rating>\n  <service>compute</service>\n  <desc>\n    <item>\n      <key>flavor</key>\n      <value>m1.tiny</value>\n    </item>\n    <item>\n      <key>vcpus</key>\n      <value>1</value>\n    </item>\n  </desc>\n  <volume>1.0</volume>\n</value>'
desc

资源参数的描述。

service

服务名称。

volume

资源的容量。

type DataFrame

描述存储的数据帧的类型。

数据示例

Json
{
    "begin": "2015-04-22T07:00:00",
    "end": "2015-04-22T08:00:00",
    "resources": [
        {
            "desc": {
                "flavor": "m1.tiny",
                "vcpus": "1"
            },
            "rating": "1.0",
            "service": "compute",
            "volume": "1.0"
        }
    ],
    "tenant_id": "69d12143688f413cbf5c3cfe03ed0a12"
}
XML
b'<value>\n  <begin>2015-04-22T07:00:00</begin>\n  <end>2015-04-22T08:00:00</end>\n  <tenant_id>69d12143688f413cbf5c3cfe03ed0a12</tenant_id>\n  <resources>\n    <item>\n      <rating>1.0</rating>\n      <service>compute</service>\n      <desc>\n        <item>\n          <key>flavor</key>\n          <value>m1.tiny</value>\n        </item>\n        <item>\n          <key>vcpus</key>\n          <value>1</value>\n        </item>\n      </desc>\n      <volume>1.0</volume>\n    </item>\n  </resources>\n</value>'
begin

样本的开始日期。

end

样本的结束日期。

resources

资源列表。

tenant_id

样本的租户所有者。

type DataFrameCollection

存储的数据帧列表。

数据示例

Json
{
    "dataframes": [
        {
            "begin": "2015-04-22T07:00:00",
            "end": "2015-04-22T08:00:00",
            "resources": [
                {
                    "desc": {
                        "flavor": "m1.tiny",
                        "vcpus": "1"
                    },
                    "rating": "1.0",
                    "service": "compute",
                    "volume": "1.0"
                }
            ],
            "tenant_id": "69d12143688f413cbf5c3cfe03ed0a12"
        }
    ]
}
XML
b'<value>\n  <dataframes>\n    <item>\n      <begin>2015-04-22T07:00:00</begin>\n      <end>2015-04-22T08:00:00</end>\n      <tenant_id>69d12143688f413cbf5c3cfe03ed0a12</tenant_id>\n      <resources>\n        <item>\n          <rating>1.0</rating>\n          <service>compute</service>\n          <desc>\n            <item>\n              <key>flavor</key>\n              <value>m1.tiny</value>\n            </item>\n            <item>\n              <key>vcpus</key>\n              <value>1</value>\n            </item>\n          </desc>\n          <volume>1.0</volume>\n        </item>\n      </resources>\n    </item>\n  </dataframes>\n</value>'