在 Hapi 框架中使用 Good 来记录 API 响应时间

在 Web 开发的过程中,记录 API 响应时间是非常重要的一环。它可以帮助我们发现和优化系统的瓶颈,提升用户的体验。本文将会介绍如何在 Hapi 框架中使用 Good 来记录 API 响应时间。

Good 是什么?

Good 是 Hapi 框架提供的一个插件,它可以帮助我们记录 Hapi 应用程序的运行时信息,如请求响应时间、错误日志等等。Good 基于事件式的框架,可以与其它的 Hapi 插件无缝集成。

使用 Good 插件

下面我们将介绍如何在 Hapi 代码中使用 Good 插件。

安装 Good 插件

使用 npm 命令安装 Good 插件:

--- ------- ----

注册 Good 插件

在开始使用 Good 插件之前,需要先在 Hapi 代码中注册它,以便可以使用 Good 产生的事件来记录和分析 API 响应时间信息。

----- ---- - ----------------
----- ---- - ----------------

----- ------ - --- --------------

-------------------
    ----- -----
    ----- -----------
---

-----------------
    --------- -----
    -------- -
        ---- -
            --------- ----
        --
        ---------- -
            -------- --
                ------- ---------------
                ----- ----------
                ----- -- --------- ---- ---- --- --
            -- -
                ------- --------------
            -- ---------
        -
    -
-- ----- -- -
    -- ----- -
        ----- ----
    -

    ------------------ -- -
        -- ----- -
            ----- ----
        -

        ------------------- ------- -- ---------------------
    ---
---

记录 API 响应时间

Good 插件提供了 'request' 事件,我们可以在该事件中记录 API 的响应时间:

--------------------- -------- --------- -
    ---------------------------------- - ------------ ----------
---

上述代码中,'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