在 Web 开发的过程中,记录 API 响应时间是非常重要的一环。它可以帮助我们发现和优化系统的瓶颈,提升用户的体验。本文将会介绍如何在 Hapi 框架中使用 Good 来记录 API 响应时间。
Good 是什么?
Good 是 Hapi 框架提供的一个插件,它可以帮助我们记录 Hapi 应用程序的运行时信息,如请求响应时间、错误日志等等。Good 基于事件式的框架,可以与其它的 Hapi 插件无缝集成。
使用 Good 插件
下面我们将介绍如何在 Hapi 代码中使用 Good 插件。
安装 Good 插件
使用 npm 命令安装 Good 插件:
npm install good
注册 Good 插件
在开始使用 Good 插件之前,需要先在 Hapi 代码中注册它,以便可以使用 Good 产生的事件来记录和分析 API 响应时间信息。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ---- - ---------------- ----- ------ - --- -------------- ------------------- ----- ----- ----- ----------- --- ----------------- --------- ----- -------- - ---- - --------- ---- -- ---------- - -------- -- ------- --------------- ----- ---------- ----- -- --------- ---- ---- --- -- -- - ------- -------------- -- --------- - - -- ----- -- - -- ----- - ----- ---- - ------------------ -- - -- ----- - ----- ---- - ------------------- ------- -- --------------------- --- ---
记录 API 响应时间
Good 插件提供了 'request' 事件,我们可以在该事件中记录 API 的响应时间:
server.on('response', function (request) { console.log(request.info.completed - request.info received); });
上述代码中,'request.info.completed' 表示请求完成的时间戳,'request.info.received' 是 Hapi 服务器接收请求的时间戳。将两者之差计算即可得到 API 的响应时间。
利用 Good 报告器,可以将上述的记录写入日志文件:
-- -------------------- ---- ------- ---------- - ------------- -- ------- --------------- ----- ---------- ----- -- --------- ---- ---- --- -- -- - ------- --------------- ----- ---------- -- - ------- ------------ ------- ------------------ --- -
用 Grafana 可视化数据
Grafana 是一款数据可视化工具,可以用它将我们记录的 API 响应时间数据可视化。
在安装 Grafana 之前,可以先安装 InfluxDB 数据库作为后端存储数据。然后安装 Grafana 并添加 InfluxDB 数据源,再创建一个 Dashboard。
下面是一个样例的 Grafana Dashboard,可以用来可视化 API 响应时间数据:
-- -------------------- ---- ------- - ----- - - ------- - - --- -- ------ ---- -------- ----- -------- ----- --- -------- - - ------ ---- ------- ------------------------------------------------ - -- ------ - - ------- ----- ------ ------- ---- - - -- ------ - - ----- ---- - - - ---- --- -- -
结论
使用 Good 插件来记录 API 响应时间,可以帮助我们发现和优化系统的瓶颈,提升用户的体验。同时,利用 Grafana 数据可视化工具,可以更全面地查看 API 响应时间的数据,并进行分析和统计。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/673469f20bc820c58248f131