AWS CloudWatch查询结果

时间:2019-06-18 15:04:56

标签: java amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

当我在调试模式下运行该代码并在该行上有断点并进入该行时,以下代码返回记录。但是,当我在常规运行中运行它并且不进入此行时,它将产生0个结果。 我究竟做错了什么?谢谢

GetQueryResultsResult getQueryResultsResult = awslogs.getQueryResults(getQueryResultsRequest);

2 个答案:

答案 0 :(得分:0)

在该代码行之前添加以下代码行已解决了该问题:

TimeUnit.SECONDS.sleep(2);

谢谢

答案 1 :(得分:0)

查询不是由getQueryResults的方法CloudWatchLogsClient执行的,而是在调用startQuery时执行的。

startQuery可能需要很长时间才能完成其执行,因此,如果在getQueryResults之后立即调用startQuery,它将不会得到结果,因为查询可能仍然是运行。

因此,要获取结果,您可以通过检查GetQueryResultsResponse的状态来验证查询是否仍在运行:

 GetQueryResultsResponse getQueryResultsResponse = null;
 do {
      getQueryResultsResponse = awslogs.getQueryResults(getQueryResultsRequest);
 } while ("Running".equals(getQueryResultsResponse.status().toString()));