npm 包 @panterazar/nestjs-prom 使用教程

在开发 Web 应用程序时,性能监控是非常必要的一件事情。因此,引入一种运行时指标监控工具是非常必要的。nestjs-prometheus 是一个基于 NestJS 的运行时指标监控工具,可以帮助你监控你的 NestJS 应用程序运行的各种指标。本文将介绍在 NestJS 中如何使用这个 npm 包。

安装和配置

首先,你需要在你的 NestJS 应用程序中安装 @panterazar/nestjs-prom,可以通过以下命令进行安装:

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

安装完成后,你需要在你的应用程序主模块中进行配置。在这个模块中,你需要从 @panterazar/nestjs-prom 中导入 NestJSPrometheusService 和 PromModule,如下所示:

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

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

这个示例代码中,PromModule 的 register 方法用来配置和启用 Prometheus 服务。NestJSPrometheusService 是一个提供了各种指标的服务。

为了方便启用和配置,你可以根据你的需要在 PromModule 中传递一些配置选项,例如启用 Process 监控器和 HTTP 监控器,如下所示:

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

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

在这个示例代码中,配置默认标签,启用默认的控制器,进程监控器和 HTTP 监控器。

使用 NestJSPrometheusService

当配置完成后,在控制器和服务中就可以使用 NestJSPrometheusService 服务来记录各种指标和值。这个服务提供了很多方法,可以用来记录各种指标,例如计数器、直方图、摘要等。

这里将介绍一些基本的使用示例,在实际场景中,你可以根据需求来使用各种指标。

计数器

计数器指标用来记录某些事件发生的次数。例如在 NestJS 中,可以用计数器来记录 API 接口请求的总数。

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

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

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

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

这个示例代码中,我们创建了一个名为 http_requests_total 的计数器,并且记录了一次 GET 请求的状态为 200。

直方图

直方图指标用于记录事件发生的频率,以及在某个时间段内事件分布的情况。例如在 NestJS 开发中,可以用直方图来记录 API 接口请求的请求时间分布情况。

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

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

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

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

这个示例代码中,我们创建了一个名为 http_request_duration_seconds 的直方图,并记录了一次 GET 请求的时间分布情况,分别为 0.001 秒、0.01 秒、0.1 秒、1 秒和 10 秒。

摘要

摘要指标用于记录一组样本的分布情况,与直方图类似,但更加精细。例如在 NestJS 中,可以用摘要指标来记录系统 CPU 使用率的分布情况。

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

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

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

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

这个示例代码中,我们创建了一个名为 cpu_usage 的摘要指标,并记录了应用程序的 CPU 使用率分布情况,分别为 0.1、0.5 和 0.9。

结论

nestjs-prometheus 是一个非常强大的运行时指标监控工具,它可以帮助开发人员监控应用程序中的各种指标。本文介绍了如何在 NestJS 中使用 @panterazar/nestjs-prom 这个 npm 包来实现指标监控。如果你想了解更多关于指标监控的知识,以及如何在 NestJS 中使用它,则建议你仔细阅读 NestJS 和 @panterazar/nestjs-prom 的官方文档。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60067357890c4f7277583cde


猜你喜欢

  • npm包Neo-fetch使用教程

    在前端开发中,我们经常需要从API中获取数据,而这个请求和响应的过程需要利用到fetch方法。fetch是原生javascript中的方法,它能够发送异步请求和接收响应。

    4 年前
  • npm 包 egrow-vue-generator 使用教程

    前言 在前端开发中,Vue 是一个非常流行和优秀的框架。在 Vue 项目的开发中,经常需要创建一些基本的文件和文件夹结构,如组件、页面、路由等等。这些基本的文件和文件夹结构需要手动创建,费时费力。

    4 年前
  • npm 包 artcode-tool 使用教程

    作为一名前端开发人员,我们通常都会遇到需要快速生成可视化界面的需求。在这种情况下,我们可以使用一些类似 artcode-tool 的工具来帮助我们节省时间和精力。 artcode-tool 是一个 n...

    4 年前
  • npm 包 line-clamp 使用教程

    在前端开发中,我们经常需要对长文本进行截断处理,以便用户更好地阅读内容。而 line-clamp 就是一款非常实用的 npm 包,可以帮助我们轻松地实现文本截断效果。

    4 年前
  • npm 包 za-id 使用教程

    前言 在前端开发中,经常需要生成一些唯一的字符串或者 ID,而这些字符串或者 ID 需要具有唯一性和可读性,这时候我们通常会选择使用第三方库来帮助我们完成。za-id 就是一款可以生成唯一 ID 的 ...

    4 年前
  • npm 包 @nepada/eslint-config 使用教程

    介绍 随着前端项目越来越复杂, 代码规范的重要性不断被强调。 eslint 可以帮助我们统一前端项目的代码风格,保证代码质量更加稳定,降低维护成本。本文将重点介绍如何使用 npm 包 @nepada/...

    4 年前
  • npm 包 @sammyne/vuepress-theme-sammyne 使用教程

    介绍 @sammyne/vuepress-theme-sammyne 是一个基于 VuePress 的主题包,致力于提供美观、易用的文档和博客展示形式。本文将介绍如何使用这个 npm 包。

    4 年前
  • npm 包 @ngxa/rules 使用教程

    简介 @ngxa/rules 是 Angular 属于一个优秀的 npm 包,是一个使得 Angular 应用开发更易于维护的解决方案。通过使用 @ngxa/rules,开发人员可以定义规则,并将这些...

    4 年前
  • npm 包 anyid 使用教程

    在前端开发过程中,生成唯一的 ID 通常是必不可少的。为了实现这一目的,我们可以使用 npm 包 anyid。 安装 使用 npm 安装 anyid: --- ------- -----使用 在代码中...

    4 年前
  • npm 包 grunt-untar-new 使用教程

    前言 在前端开发中,我们常常需要将一些文件打包压缩,以便于在生产环境中使用。而在开发过程中,也需要解压缩这些文件,并将其部署到开发环境中。这时候,npm 包 grunt-untar-new 可以帮助我...

    4 年前
  • npm 包 com.mytests.moduletests 使用教程

    前言 npm 好像已经成为了前端开发中的必备工具,这里向大家推荐一下 com.mytests.moduletests 这个 npm 包,它可以帮助我们更加便捷地测试我们的 JavaScript 代码。

    4 年前
  • npm 包 ewares 使用教程

    在前端开发中,我们经常需要使用第三方库或组件来提高开发效率或功能实现。其中,npm 是 Node.js 的包管理器,是前端开发中常用的包管理工具之一。其中一个非常实用的 npm 包就是 ewares。

    4 年前
  • npm包 service-systemd 使用教程

    简介 在 Node.js 的应用中,我们常常需要在操作系统中注册服务,让我们的应用随操作系统启动而启动,并能够通过操作系统的服务管理工具来进行管理,比如 systemctl。

    4 年前
  • npm 包 javascript-lint 使用教程

    在前端开发过程中,我们经常需要使用 Javascript。不过,由于 Javascript 的灵活性,编写出高质量的代码是一件比较困难的事情。这时候,我们就需要使用一些工具来帮助我们进行代码规范和错误...

    4 年前
  • npm 包 jslrc 使用教程

    前言 在开发前端项目时,我们经常使用 JavaScript 来编写代码。但是由于 JavaScript 语言的设计缺陷以及历史遗留问题等原因,代码质量往往参差不齐,不符合规范,这导致代码可读性、可维护...

    4 年前
  • npm 包 my-npm-utils 使用教程

    简介 my-npm-utils 是一个前端开发中常见的工具集合,包含了一系列常用的工具函数和插件,以方便开发者进行项目开发。 安装 --- ------- ------------ ------使用 ...

    4 年前
  • npm 包 todocli-oclif 使用教程

    在前端开发过程中,我们经常需要对项目进行一些文档管理和项目计划方面的管理,而 todocli-oclif 就是一款方便好用的 npm 包,它可以帮助我们快速实现 ToDo 列表的管理和命令行操作。

    4 年前
  • npm 包 sknode 使用教程

    前端开发中,会用到很多 npm 包。其中一个非常实用的包就是 sknode。sknode 是一个基于 Node.js 的 WebSocket 服务器和客户端,可以方便地创建实时应用程序,如聊天应用程序...

    4 年前
  • npm 包 vue2-cui 使用教程

    前言 在前端开发中,使用一些常用的组件库可以极大地提高我们的开发效率,同时也使我们的应用更加美观和强大。而 vue2-cui 是一个基于 Vue.js 的 UI 组件库,提供了多种常用组件,如按钮、输...

    4 年前
  • npm 包 quotes-go 使用教程

    简介 在日常前端开发中,我们经常需要一些随机语句或者句子来做一些测试或者展示,这个时候,一个好用的 npm 包 quotes-go 就应运而生了。它可以为我们提供各种主题的句子以及语录,可以说是非常的...

    4 年前

相关推荐

    暂无文章