@defra/cdp-metrics

中文文档
0.6.1发布于 2026/10/05OGL-UK-3.0ES Module构建来源已验证近 30 天下载 3.5万

CDP 平台上的自定义计量工具库

中文使用文档
文档目录12 节
  1. 特征
  2. 安装
  3. 配置
  4. 地方发展
  5. 生产
  6. 使用量
  7. 基本计量
  8. 计时函数
  9. 有维度
  10. Hapi 插件
  11. 测试
  12. 处理错误

cdp 计量

一个简单的包装 AWS 嵌入式计量格式( EMF) 用于Node.js应用程序。 它利用计数器、计时器、测量仪和尺寸测量仪,用最小的锅炉来提供排放相容的云表测量仪.

特征

  • Emit 计数器(国家单位)
  • 时间同步函数
  • 电量计、字节尺寸和持续时间
  • 用于错误跟踪的可选日志注射
  • 在单位测试中容易被嘲笑

安装

npm install @defra/cdp-metrics

配置

地方发展

这个库使用AWS EMF来放出度量衡. 改为: 开发期间安全禁用 Cloud Watch 写入,设置以下环境变量:

AWS_EMF_ENVIRONMENT=Local

我建议你用这个 package.json 防止在部署的服务中意外关闭度量衡.

{
  "scripts": {
    "dev": "AWS_EMF_ENVIRONMENT=Local run-p frontend:watch server:watch",
    "dev:debug": "AWS_EMF_ENVIRONMENT=Local run-p frontend:watch server:debug"
  }
}

生产

不设置 AWS EMF ENVIRONMENT=本地,或者将默不作声地丢弃指标。 AWS EMF 将自动向 Cloud Watch ECS 环境发布.

使用量

基本计量

import { counter, timer, millis, gauge, byteSize } from '@defra/cdp-metrics'

const metrics = new Metrics(logger)

await metrics.counter('processedItems', 5)
await metrics.millis('dbQueryTime', 128)
await metrics.gauge('inFlightJobs', 3)
await metrics.byteSize('responseSize', 1024)

可在不等待阻止行刑的情况下发出计量电话.

计时函数

const metrics = new Metrics(logger)
await metrics.timer('myHandlerTime', async () => {
  // Do some async work
})

有维度

await counter('apiCall', 1, { service: 'user', route: '/login' })

Hapi 插件

将参数附加到服务器并请求上下文并配置日志 :

import { metrics } from '@defra/cdp-metrics'

await server.register(metrics)

server.metrics.counter('startup', 1)
request.metrics.timer('dbFetch', async () => fetchUsers())

测试

你用得着 AWS_EMF_ENVIRONMENT=Local 在你的测试中,如果你不想 度量衡被嘲笑.

嘲弄用于验证排放的度量衡的内置计量法:

import * as embedded from 'aws-embedded-metrics'

vi.spyOn(embedded, 'createMetricsLogger').mockImplementation(() => ({
  putMetric: vi.fn(),
  flush: vi.fn(),
  setDimensions: vi.fn()
}))

处理错误

如果任何计量标准没有发出,则会记录警告(如果设置了日志)。 您可以输入自己的日志 :

import pino from 'pino'
new Metrics(pino())

版本与发布记录

@defra/cdp-metrics 共发布 8 个版本,首次发布于 2025/07/08;过去 12 个月发布了 5 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.6.1latest2026/10/051 个月前
0.6.02026/04/226 个月前
0.5.02026/01/299 个月前
0.4.02026/01/289 个月前
0.3.02025/11/2811 个月前
0.2.02025/11/071 年前

关于 @defra/cdp-metrics 的常见问题

@defra/cdp-metrics 是什么?

CDP 平台上的自定义计量工具库

如何安装 @defra/cdp-metrics?

在项目目录运行 npm install @defra/cdp-metrics,或使用 pnpm add / yarn add / bun add。

@defra/cdp-metrics 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/defra__cdp-metrics 是否存在。

@defra/cdp-metrics 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@defra/cdp-metrics 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@defra/cdp-metrics 可以商用吗?

@defra/cdp-metrics 使用 OGL-UK-3.0 许可。声明的许可为 OGL-UK-3.0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@defra/cdp-metrics 的下载量有多少?

根据 npm 官方下载统计,@defra/cdp-metrics 在 2026/10/12 – 2026/11/10 这 30 天内被下载 35,020 次,日均约 1,167 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@defra/cdp-metrics 还在维护吗?

最新版本 0.6.1 发布于 2026/10/05(1 个月前);至今共发布 8 个版本,其中过去 12 个月发布了 5 个;首次发布于 2025/07/08。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。