CloudKitty REST API (v1)¶
Collector(收集器)¶
- GET /v1/collector¶
未使用的函数,用于让 pecan 将请求路由到子控制器。
- GET /v1/collector/mappings¶
返回映射到收集器的每个服务的列表。
- 参数:
collector (
str) – 过滤收集器名称。
- 返回:
服务到收集器的映射集合。
- 返回类型:
- GET /v1/collector/mappings/(service)¶
返回服务到收集器的映射。
- 参数:
service (
str) – 要过滤的服务名称。
- 返回类型:
- POST /v1/collector/mappings¶
创建一个服务到收集器的映射。
- 参数:
collector (
str) – 应用映射的收集器名称。service (
str) – 应用映射的服务名称。
- 返回类型:
- DELETE /v1/collector/mappings¶
删除一个服务到收集器的映射。
- 参数:
service (
str) – 要过滤的服务名称。
- GET /v1/collector/states¶
查询收集器的启用状态。
- 参数:
name (
str) – 收集器的名称。
- 返回:
收集器的状态。
- 返回类型:
- PUT /v1/collector/states¶
设置收集器的启用状态。
- 参数:
name (
str) – 收集器的名称。infos (
CollectorInfos) – 收集器的新的状态信息。
- 返回:
收集器的状态。
- 返回类型:
- type CollectorInfos¶
描述收集器模块的类型。
数据示例
- Json
{ "enabled": true, "name": "gnocchi" }
- XML
b'<value>\n <name>gnocchi</name>\n <enabled>true</enabled>\n</value>'
- enabled¶
收集器的状态。
- name¶
收集器的名称。
信息¶
- GET /v1/info/config¶
返回当前配置。
- 返回类型:
dict(
str:None)
- GET /v1/info/metric¶
获取指标列表。
- 返回:
所有指标的列表。
- 返回类型:
- GET /v1/info/metric/(metric_name)¶
返回一个指标。
- 参数:
metric_name (
str) – 指标的名称。
- 返回类型:
- 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¶
获取服务列表(已弃用)。
- 返回:
每个服务的列表。
- 返回类型:
- GET /v1/info/service/(service_name)¶
返回一个服务(已弃用)。
- 参数:
service_name (
str) – 服务的名称。
- 返回类型:
Rating(评级)¶
- GET /v1/rating/modules¶
返回已加载的模块列表。
- 返回:
每个已加载模块的名称。
- 返回类型:
- GET /v1/rating/modules/(module_id)¶
返回一个模块
- 返回:
CloudKittyModule
- 返回类型:
- PUT /v1/rating/modules¶
更改模块的状态和优先级。
- 参数:
module_id (
str) – 要修改的模块的名称module (
CloudkittyModule) – 描述新期望状态的 CloudKittyModule 对象
- 返回类型:
- POST /v1/rating/quote¶
基于多个资源描述获取即时报价。
- 参数:
res_data (
CloudkittyResourceCollection) – 资源描述列表。
- 返回:
这些描述的总价格。
- 返回类型:
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 对象集合。
- 返回类型:
- 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>'