Stackdriver REST api - 获取多个时间序列
Stackdriver REST api - getting multiple Time Series
我正在尝试使用 stackdriver api 获取多个时间序列。具体来说,GCP 负载均衡器数据。
使用 stackdriver 仪表板,我创建了一个带有一些参数的图表,它运行良好,显示所有不同的时间序列来回答过滤器。
我已将相同的参数复制到 API 游乐场,json 响应返回单个时间序列(可能是第一个)。
这是查询(取自 playground 控制台):
return gapi.client.monitoring.projects.timeSeries.list({
"name": "projects/my_project",
"aggregation.alignmentPeriod": "60s",
"aggregation.crossSeriesReducer": "REDUCE_SUM",
"aggregation.groupByFields": [
"metric.label.cache_result",
"metric.label.response_code"
],
"aggregation.perSeriesAligner": "ALIGN_RATE",
"filter": "metric.type=\"loadbalancing.googleapis.com/https/request_count\" AND resource.label.forwarding_rule_name=\"my_rule_name\"",
"interval.endTime": "2018-11-16T15:04:05Z",
"interval.startTime": "2006-11-15T11:04:05Z",
"pageSize": 1,
"view": "FULL"
})
REST 响应:
{
"timeSeries": [
{
"metric": {
"labels": {
"response_code": "0",
"cache_result": "DISABLED"
},
"type": "loadbalancing.googleapis.com/https/request_count"
},
"resource": {
"type": "https_lb_rule",
"labels": {
"project_id": "my_project_id"
}
},
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"points": [
{
"interval": {
"startTime": "2018-11-15T13:12:05Z",
"endTime": "2018-11-15T13:12:05Z"
},
"value": {
"doubleValue": 0.05
}
}
]
}
],
"nextPageToken": "CPvK9vuH/qibZxJtIh0KEAoGCKXhtd8FEgYIpeG13wUSCRmamZmZmZmpPyoNaHR0cHNfbGJfcnVsZTI9chkKFWfdsfpYzovcmVzcG9uc2VfY29kZRAAciAKFG1ldHJpYzovY2FjaGVfcmVzdWx0GghESVNBQkxFRA=="
}
我期望得到的实际图表(来自 SD 控制台 - 相同的参数):
在您传递 "pageSize": 1
的请求中,它告诉 api 只有 return 1 个结果。删除此参数将允许它在单个响应中 return 最多 100k 个结果。
随着"view": "FULL"
的传递,每个结果都是时间序列中的一个点。如果你删除 pageSize
参数或增加它,但仍然没有在一个响应中得到所有的点,因为有太多,你可以传递相同的请求 pageToken
设置为 nextPageToken
的先前响应以获得下一组结果。
我正在尝试使用 stackdriver api 获取多个时间序列。具体来说,GCP 负载均衡器数据。 使用 stackdriver 仪表板,我创建了一个带有一些参数的图表,它运行良好,显示所有不同的时间序列来回答过滤器。 我已将相同的参数复制到 API 游乐场,json 响应返回单个时间序列(可能是第一个)。
这是查询(取自 playground 控制台):
return gapi.client.monitoring.projects.timeSeries.list({
"name": "projects/my_project",
"aggregation.alignmentPeriod": "60s",
"aggregation.crossSeriesReducer": "REDUCE_SUM",
"aggregation.groupByFields": [
"metric.label.cache_result",
"metric.label.response_code"
],
"aggregation.perSeriesAligner": "ALIGN_RATE",
"filter": "metric.type=\"loadbalancing.googleapis.com/https/request_count\" AND resource.label.forwarding_rule_name=\"my_rule_name\"",
"interval.endTime": "2018-11-16T15:04:05Z",
"interval.startTime": "2006-11-15T11:04:05Z",
"pageSize": 1,
"view": "FULL"
})
REST 响应:
{
"timeSeries": [
{
"metric": {
"labels": {
"response_code": "0",
"cache_result": "DISABLED"
},
"type": "loadbalancing.googleapis.com/https/request_count"
},
"resource": {
"type": "https_lb_rule",
"labels": {
"project_id": "my_project_id"
}
},
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"points": [
{
"interval": {
"startTime": "2018-11-15T13:12:05Z",
"endTime": "2018-11-15T13:12:05Z"
},
"value": {
"doubleValue": 0.05
}
}
]
}
],
"nextPageToken": "CPvK9vuH/qibZxJtIh0KEAoGCKXhtd8FEgYIpeG13wUSCRmamZmZmZmpPyoNaHR0cHNfbGJfcnVsZTI9chkKFWfdsfpYzovcmVzcG9uc2VfY29kZRAAciAKFG1ldHJpYzovY2FjaGVfcmVzdWx0GghESVNBQkxFRA=="
}
我期望得到的实际图表(来自 SD 控制台 - 相同的参数):
在您传递 "pageSize": 1
的请求中,它告诉 api 只有 return 1 个结果。删除此参数将允许它在单个响应中 return 最多 100k 个结果。
随着"view": "FULL"
的传递,每个结果都是时间序列中的一个点。如果你删除 pageSize
参数或增加它,但仍然没有在一个响应中得到所有的点,因为有太多,你可以传递相同的请求 pageToken
设置为 nextPageToken
的先前响应以获得下一组结果。