@piigo/express-node-metrics
是一个用于在 Node.js 应用程序中记录指标的 npm 包。它提供了多种指标类型,并且可以方便地集成到现有的 Express 应用程序中。本文将介绍如何使用该包来收集应用程序的运行时统计信息。
安装
要使用 @piigo/express-node-metrics
,首先需要将其安装到项目中。可以使用 npm 进行安装:
npm install @piigo/express-node-metrics
集成
在 Express 应用程序中使用 @piigo/express-node-metrics
很简单。只需要将其导入到应用程序中,并使用 app.use()
将其注册到路由中:
const express = require('express'); const metricsMiddleware = require('@piigo/express-node-metrics'); const app = express(); app.use(metricsMiddleware());
使用 app.use()
将 @piigo/express-node-metrics
注册到应用程序时,中间件会自动添加 /metrics
路由。该路由将返回包含运行时指标的 JSON 文档。
指标
@piigo/express-node-metrics
提供了多种指标类型,包括:
- 进程指标(Process Metrics),例如 CPU 时间和内存使用情况。
- HTTP 指标(HTTP Metrics),例如请求开始时间和请求持续时间。
- 自定义指标(Custom Metrics),可以记录任何应用程序特定的指标。
进程指标
进程指标包括 CPU 时间和内存使用情况。要启用进程指标,只需要在 metricsMiddleware()
中向其传递 options
对象,并将 processMetrics
设置为 true
即可:
app.use(metricsMiddleware({ processMetrics: true }));
除了启用进程指标之外,还可以配置其他选项:
interval
: 以毫秒为单位的记录间隔,默认为1000
。percentiles
: 要记录的百分位数列表,默认为[0.5, 0.9, 0.95, 0.99]
。
HTTP 指标
HTTP 指标包括请求开始时间、请求持续时间等。要启用 HTTP 指标,只需要在 metricsMiddleware()
中向其传递 options
对象,并将 httpMetrics
设置为 true
即可:
app.use(metricsMiddleware({ httpMetrics: true }));
除了启用 HTTP 指标之外,还可以配置其他选项:
timeDigits
: 时间指标的小数位数,默认为3
。timeUnits
: 时间指标的单位列表,默认为['s', 'ms', 'μs', 'ns']
。
自定义指标
自定义指标允许应用程序记录任何指标。要添加自定义指标,请使用 metricsMiddleware()
返回的 metrics
对象,并调用其中的方法:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ----------------- - --------------------------------------- ----- --- - ---------- ----- ------- - ---------------------------- -- -------- ----- ------- - ----------------------- ----- ------------- ----- ----- -- -- ------ ---------- --- -------------- -- -------- ----- --------- - ------------------------- ----- --------------- ----- ----- -- -- ------ ------------ -------- ----- -- -- ---- --- --------------------- --------------------- --------------------- -----------------------------
示例代码
下面是一个完整的示例,演示如何使用 @piigo/express-node-metrics
收集应用程序的指标:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ----------------- - --------------------------------------- ----- --- - ---------- ----- ------- - ---------------------------- -- -------- ----- ------- - ----------------------- ----- ------------- ----- ----- -- -- ------ ---------- --- -- -------- ----- --------- - ------------------------- ----- --------------- ----- ----- -- -- ------ ------------ -------- ----- -- -- ---- --- ------------ ----- ---- -- - -------------- ------------------------------- - ---- --------------- -------- --- ----------------------------- ---------------- -- -- - ------------------- ------- -- ---- ------- ---
在该示例中,我们创建了一个自定义计数器和一个自定义直方图,并在路由处理程序中增加了它们的值。通过使用 metricsMiddleware()
,我们可以仅使用一行代码将中间件注册到应用程序中。
结论
@piigo/express-node-metrics
是一款非常方便易用的 npm 包,可以轻松地收集应用程序运行时的指标。无论是进程指标、HTTP 指标、还是自定义指标,它都提供了丰富的选项,可以轻松地满足应用程序中的各种需求。如果你正在构建一个 Node.js 应用程序,并且需要进行运行时监控和指标收集,那么 @piigo/express-node-metrics
绝对值得尝试!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006736f890c4f727758408c