【发布时间】:2020-01-17 06:54:23
【问题描述】:
我正在尝试使用 Google 监控 REST API(代码示例)获取性能数据。但它返回空数据“{}”。还观察到它正在重新调整响应的 ContentEncoding 是“gzip”类型。
private static void executeMetricUrl(Credential credential) throws Exception {
// Set up and execute a Google Cloud Storage request.
long startMillis = System.currentTimeMillis() - ((60 * 20) * 1000);
Date currentDate = new Date(startMillis);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
//formatted value of current Date
System.out.println("Milliseconds to Date: " + df.format(currentDate));
//System.out.println(currentDate);
String URI = "https://monitoring.googleapis.com/v3/projects/" + projectId+"/timeSeries/?";
String interval =
"interval.end_time=" + df.format(System.currentTimeMillis()) + "&interval.start_time="
+ df.format(currentDate);
String filter =
"filter=metric.type=\"compute.googleapis.com/instance/cpu/utilization\""; //AND metric.labels.instance_name=sampleinstance-1";
String aggregation =
"aggregation.perSeriesAligner=ALIGN_RATE&aggregation.alignmentPeriod=60s&aggregation.crossSeriesReducer=ALIGN_MEAN";
String finalUrl = URI+filter+"&"+interval;
System.out.println("Final URL ::: "+finalUrl);
TimeInterval interval1 = TimeInterval
.newBuilder()
.setStartTime(Timestamps.fromMillis(startMillis))
.setEndTime(
Timestamps.fromMillis(System
.currentTimeMillis())).build();
HttpRequestFactory requestFactory = httpTransport.createRequestFactory(credential);
GenericUrl url = new GenericUrl(finalUrl);
HttpRequest request = requestFactory.buildGetRequest(url);
//HttpHeaders headers = new HttpHeaders();
//request.setHeaders(headers.setAcceptEncoding("gzip"));
HttpResponse response = request.execute();
String html = "";
BufferedReader in = new BufferedReader(new InputStreamReader(response.getContent()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
html += inputLine + "\n";
}
System.out.println("content ::: "+html);
}
我正在使用 MetricServiceClient 获得具有相同过滤器和间隔的正确时间序列数据。我是否遗漏了 REST API 方法中的某些内容。
【问题讨论】:
-
您可以尝试先使用Method: projects.timeSeries.list API 进行测试,看看是否得到相同的空结果。请注意,响应中仅包含包含指定时间间隔内的数据点的时间序列。
-
是的,我也在这个页面上尝试过,得到相同的空 {} 结果。我正在尝试从当前时间获取 20 分钟的数据。
标签: java google-app-engine google-api