OpenStack Gnocchi-相当于云顶计/v2/meter/[meter]/statistics



我正在为Gnocchi寻找与ceilometer web api的/meter/[meterName]/statistics端点完全等效的端点,但我很难找到等效的端点。看起来没有办法检索相同的信息。

天花板端点提到When a simple statistics request is invoked (using GET /v2/meters/<meter_name>/statistics), it will return the standard set of Statistics: avg, sum, min, max, and count.,并提供了一个富有表现力的API,允许应用进一步的过滤和高级搜索选项,如:

GET /v2/meters/instance/statistics
q: [{"field": "user_id",
"op": "eq",
"value": "user-2"},
{"field": "source",
"op": "eq",
"value": "source-1"}]
groupby: ["project_id", "resource_id"]

它将产生这样的输出:

[{"count": 4, "duration_start": "2013-09-18T19:08:33", "min": 1.0,
"max": 1.0, "duration_end": "2013-09-18T19:27:30", "period": 0,
"sum": 4.0, "period_end": "2013-09-18T19:27:30", "duration": 1137.0,
"period_start": "2013-09-18T19:08:33", "avg": 1.0,
"groupby": {"project_id": "c2334f175d8b4cb8b1db49d83cecde78",
"resource_id": "551f495f-7f49-4624-a34c-c422f2c5f90b"},
"unit": "image"},
{"count": 4, "duration_start": "2013-09-18T19:08:36", "min": 1.0,
"max": 1.0, "duration_end": "2013-09-18T19:27:30", "period": 0,
"sum": 4.0, "period_end": "2013-09-18T19:27:30", "duration": 1134.0,
"period_start": "2013-09-18T19:08:36", "avg": 1.0,
"groupby": {"project_id": "c2334f175d8b4cb8b1db49d83cecde78",
"resource_id": "7c1157ed-cf30-48af-a868-6c7c3ad7b531"},
"unit": "image"},
{"count": 4, "duration_start": "2013-09-18T19:08:34", "min": 1.0,
"max": 1.0, "duration_end": "2013-09-18T19:27:30", "period": 0,
"sum": 4.0, "period_end": "2013-09-18T19:27:30", "duration": 1136.0,
"period_start": "2013-09-18T19:08:34", "avg": 1.0,
"groupby": {"project_id": "c2334f175d8b4cb8b1db49d83cecde78",
"resource_id": "eaed9cf4-fc99-4115-93ae-4a5c37a1a7d7"},
"unit": "image"}]

(相关文档可在此处找到(。

相反,在Gnocchi中(关于web api的文档可以在这里找到(,我没有找到任何方法来生成相同的信息,我能匹配的最接近的方法是使用动态聚合api,尽管似乎没有任何方法来过滤元数据:https://gnocchi.osci.io/rest.html#groupby

POST /v1/aggregates?start=2014-10-06T14:34&groupby=host&groupby=flavor_id HTTP/1.1
Content-Type: application/json
Content-Length: 149
{
"operations": "(* (aggregate mean (metric cpu.util mean)) 4)",
"resource_type": "instance",
"search": "server_group='my_autoscaling_group'"
}

它会产生这样的东西:

HTTP/1.1 200 OK
Content-Length: 550
Content-Type: application/json
[
{
"group": {
"flavor_id": "2",
"host": "compute1"
},
"measures": {
"measures": {
"aggregated": [
[
"2014-10-06T14:00:00+00:00",
3600.0,
43.333333333333336
],
[
"2014-10-06T14:34:00+00:00",
60.0,
58.0
],
[
"2014-10-06T14:34:12+00:00",
1.0,
80.0
],
[
"2014-10-06T14:34:20+00:00",
1.0,
36.0
]
]
}
}
},
{
"group": {
"flavor_id": "2",
"host": "compute2"
},
"measures": {
"measures": {
"aggregated": [
[
"2014-10-06T14:00:00+00:00",
3600.0,
58.4
],
[
"2014-10-06T14:30:00+00:00",
1800.0,
58.4
],
[
"2014-10-06T14:34:12+00:00",
1.0,
18.0
],
[
"2014-10-06T14:34:20+00:00",
1.0,
56.8
]
]
}
}
}
]

但是,除了不允许筛选元数据之外,端点仍然生成度量(聚合度量(,而不是聚合数据。

尽管在OpenStack文档中提到Gnocchi是Ceilometer的更新替代品,但似乎没有任何方法可以产生相同的数据。

有人设法找到一种方法来更换天花板测量仪的端点吗?

我已经通过github通过官方Gnocchi存储库得到了答案。

看起来你无法直接获得相同的输出,尽管有两种可能的策略可以接近它:

  1. 定义与所需聚合匹配的存档策略
  2. 稍后手动执行每个stat和聚合数据的http请求

更多信息可以直接在这里找到

最新更新