如何在Play中测量完整的响应时间(请求客户收到的响应)!框架?

时间:2016-11-17 07:24:07

标签: logging playframework netty grafana

我是playframework的新用户。 在我的一个项目中,我想测量从HTTP请求进入到客户端收到响应的最后一个字节所需的时间。我把这段时间称为“响应时间”。 在netty日志中,我可以看到:

2016-11-17 10:32:00,712 [DEBUG] from io.netty.handler.logging.LoggingHandler in netty-event-loop-3 - [id: 0xb4fb943a, L:/127.0.0.1:9001 - R:/127.0.0.1:50871] WRITE: DefaultFullHttpResponse(decodeResult: success, version: HTTP/1.1, content: ReadOnlyByteBufferBuf(ridx: 0, widx: 655, cap: 655/655))

2016-11-17 10:32:00,713 [DEBUG] from io.netty.handler.logging.LoggingHandler in netty-event-loop-3 - [id: 0xb4fb943a, L:/127.0.0.1:9001 - R:/127.0.0.1:50871] FLUSH

2016-11-17 10:32:00,713 [DEBUG] from io.netty.handler.logging.LoggingHandler in netty-event-loop-3 - [id: 0xb4fb943a, L:/127.0.0.1:9001 - R:/127.0.0.1:50871] FLUSH

2016-11-17 10:37:19,311 [DEBUG] from io.netty.handler.logging.LoggingHandler in netty-event-loop-3 - [id: 0xb4fb943a, L:/127.0.0.1:9001 ! R:/127.0.0.1:50871] INACTIVE

2016-11-17 10:37:19,312 [DEBUG] from io.netty.handler.logging.LoggingHandler in netty-event-loop-3 - [id: 0xb4fb943a, L:/127.0.0.1:9001 ! R:/127.0.0.1:50871] UNREGISTERED

我可以从日志中获取响应时间(从WRITE到FLUSH?),但有没有办法更轻松地获得“响应时间”?我需要的是将“响应时间”作为指标进行衡量并记录或发送给Grafana。

谢谢大家!

1 个答案:

答案 0 :(得分:1)

你可以:

  • 使用一个库,该库将从框架中收集指标并将其推送到指标后端。 Kamon是一个很好的图书馆,有一个游戏集成
  • 编写您自己的代码以记录指标。为此,您需要查看play filters