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 的先前响应以获得下一组结果。

这里有更多信息:https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list#body.QUERY_PARAMETERS.page_size