什么是 Appmetrics?
Appmetrics 是一个轻量级的库,用于监控 TypeScript 和 JavaScript 应用程序的性能。它为开发者提供现成的指标:响应时间、CPU 负载、内存使用、活跃请求数量以及数据库运行速度。该库不需要复杂的基础设施,可以集成到 Express、Nest.js 或纯 Node.js 中。
为什么需要监控 TypeScript 应用程序?
TypeScript 应用程序通常运行在服务器端(Node.js)或复杂的前端系统中。没有监控,您可能会错过内存泄漏、慢端点或性能突然下降。Appmetrics 帮助您:
- 跟踪请求的实际执行时间
- 发现代码中的瓶颈
- 自动将指标记录到 Prometheus 或 Grafana
- 在出现异常时接收警报
安装
通过 npm 或 yarn 安装该库:
npm install @appmetrics/typescript-metrics要集成到 Express,请额外安装:
npm install @appmetrics/express-middleware主要功能
- 收集 CPU 和内存指标 — 实时自动收集。
- HTTP 请求指标 — 响应时间、状态码、请求数量。
- 与流行系统集成 — Prometheus、Grafana、Datadog。
- 自定义指标 — 支持添加自己的计数器和直方图。
- 类型化 — 完全支持 TypeScript,具有自动补全功能。
TypeScript 代码示例
import { MetricsCollector } from '@appmetrics/typescript-metrics';import express from 'express';
const app = express();const metrics = new MetricsCollector({ appName: 'my-app' });
// 用于收集请求指标的中间件app.use((req, res, next) => { const end = metrics.startTimer('http_request'); res.on('finish', () => { end({ method: req.method, status: res.statusCode }); metrics.incrementCounter('http_requests_total'); }); next();});
app.get('/api/users', (req, res) => { res.json({ users: [] });});
// 用于以 Prometheus 格式导出指标的端点app.get('/metrics', async (req, res) => { const data = await metrics.exportPrometheus(); res.set('Content-Type', 'text/plain'); res.send(data);});
app.listen(3000, () => console.log('Server started'));何时使用 Appmetrics?
- 生产服务器 — 用于持续监控应用程序的健康状况。
- 微服务架构 — 用于单独监控每个服务。
- 负载测试 — 用于在压力测试期间收集指标。
- 调试 — 用于查找内存泄漏或慢速函数。
该库既适用于小型项目,也适用于每秒处理数千个请求的企业级系统。