【发布时间】:2018-04-10 06:42:19
【问题描述】:
我希望跟踪 API 调用的响应时间。 然后,我想在图表上绘制调用(GET、PUT、POST DELETE)的响应时间,以比较时间差异。
这是我目前正在做的查找 GET 调用的响应时间,但我不太确定它是否正确。
@RequestMapping(value="/Students", method = RequestMethod.GET)
public ResponseEntity<List<Students>> getStudents()
{
long beginTime = System.currentTimeMillis();
List<Students> students = (List<Students>) repository.findAll();
if(students.isEmpty())
{
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
long responseTime = System.currentTimeMillis() - beginTime;
logger.info("Response time for the call was "+responseTime);
return new ResponseEntity(students, HttpStatus.OK);
}
我相信我在实际将数据返回给客户端之前返回响应时间,这是重点,但我无法将它放在 return 语句之后,因为它是无法访问的代码。
有没有更好的方法来尝试跟踪通话时间?
【问题讨论】:
-
使用 Spring Boot Actuator,它将为此记录指标。您可以将其流式传输到 Grafana 之类的内容(当然还有其他选项)。
-
嗨@M.Deinum,感谢您的回复。从春天导出指标的最佳方法是什么,以便我可以在 grafana 上对其进行可视化?我无法将其导出到 influxdb 中,我不确定这是否是最好的方法
-
看看 Spring Boot 提供的一个导出器(也可以查看reference guide。)