@aws-lambda-powertools/metrics

中文文档
2.36.0发布于 2026/10/06MIT-0TypeScriptESM + CJS构建来源已验证近 30 天下载 230.8万

AWS Lambda (TypeScript) 库的 Powertools 的计量包

中文使用文档
文档目录13 节
  1. 使用量
  2. 平流参数
  3. 抓住寒冷的开始作为衡量标准
  4. 类方法装饰器
  5. Middy.js 中间软件
  6. 贡献
  7. 路线图
  8. 连接
  9. 如何支持 AWS Lambda (TypeScript) 的 Powertools ?
  10. 成为参考客户
  11. 分享你的工作
  12. 使用 Lambda 层
  13. 许可证

AWS Lambda 的动力工具( TypeScript)

用于 AWS Lambda (TypeScript) 的 Powertools 是用于执行无服务器的开发者工具包 最佳做法和增加开发者的速度。 。 。 .

您可以在 TypeScript 和 JavaScript 代码库中使用库.

使用量

库提供一种工具功能,用于向 Cloud Watch 发送度量衡 嵌入式计量格式( EMF)。 。 。 .

要启动, 请通过运行安装库 :

npm i @aws-lambda-powertools/metrics

初始化量子类之后,您可以使用 https://docs.aws.amazon.com/powertools/typescript/latest/core/meters/#创建-度量衡 方法。 测量值存储在缓冲器中,在调用时被冲出 https://docs.aws.amazon.com/powertools/typescript/latest/core/meters/#flushing-meters 互联网档案馆的存檔,存档日期2013-12-12。 。 。 .

每个衡量标准还可以增加维度和元数据.

import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';

const metrics = new Metrics({
  namespace: 'serverlessAirline',
  serviceName: 'orders',
  defaultDimensions: { environment: process.env.ENVIRONMENT },
});

export const handler = async (event: { requestId: string }) => {
  metrics.addMetadata('request_id', event.requestId);
  metrics.addMetric('successfulBooking', MetricUnit.Count, 1);
  metrics.publishStoredMetrics();
};

平流参数

在你完成添加所有度量衡时,需要通过调用来序列化并"冲出" publishStoredMetrics(),它将释放出在嵌入式计量格式(EMF)中显示的度量衡。 然后由Lambda跑道取出 并送往Cloud Watch.

这个 publishStoredMetrics() 方法是同步的,将屏蔽事件循环,直到冲出公制。 如果您想要在 Lambda 函数结束时自动冲出 Metrics, 您可以使用 @logMetrics() 装饰者或 logMetrics() 中间软件.

抓住寒冷的开始作为衡量标准

通过量子,你可以捕捉冷 开始作为度量器,叫 captureColdStartMetric() 方法。 此方法将添加一个带有名称的公尺 ColdStart 和数值 1 到测量缓冲器.

这个度量衡在调用方法时会被自动冲出来,以确保冷起被捕获,无论该度量衡是人工冲出还是自动冲出.

import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';

const metrics = new Metrics({
  namespace: 'serverlessAirline',
  serviceName: 'orders',
});

export const handler = async (event: { requestId: string }) => {
  metrics.captureColdStartMetric();
};

注意,我们不发射 ColdStart 有价值的计量 0 当功能是温暖的, 因为这会导致大量量的度量 排放到Cloud Watch, 所以你需要依赖没有 ColdStart 用于确定该函数是否温暖.

类方法装饰器

如果您正在使用 TypeScript 并适应写作课程, 您可以使用 @logMetrics() 在您 Lambda 函数末端自动冲出度量衡的装饰器, 以及配置额外选项, 如如果没有添加度量衡, 则丢出一个错误, 捕获冷起为度量符, 以及更多 .

import type { Context } from 'aws-lambda';
import type { LambdaInterface } from '@aws-lambda-powertools/commons/types';
import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';

const metrics = new Metrics({
  namespace: 'serverlessAirline',
  serviceName: 'orders',
});

class Lambda implements LambdaInterface {
  ⁣@metrics.logMetrics({ captureColdStartMetric: true, throwOnEmptyMetrics: true })
  public async handler(event: { requestId: string }, _: Context) {
    metrics.addMetadata('request_id', event.requestId);
    metrics.addMetric('successfulBooking', MetricUnit.Count, 1);
  }
}

const handlerClass = new Lambda();
export const handler = handlerClass.handler.bind(handlerClass);

装饰器是JavaScript的一个第3阶段建议,目前还没有加入ECMAScript标准. 本库中目前的插件是基于由 typeScript 装饰器语法所允许的 experimentalDecorators 旗帜 设置为 true 输入 tsconfig.json 文档.

Middy.js 中间软件

如果您正在使用 中场. js 更喜欢使用中间软件,你可以使用 @logMetrics() 与类方法装饰器相同.

这个 @logMetrics() 中间软件可以使用 Middy.js 在您 Lambda 函数末尾自动冲出度量衡, 并配置额外选项, 如如果不添加度量衡, 扔出一个错误, 捕获冷起为度量衡, 设置默认维度 .

import { Metrics, MetricUnit } from '@aws-lambda-powertools/metrics';
import { logMetrics } from '@aws-lambda-powertools/metrics/middleware';
import middy from '@middy/core';

const metrics = new Metrics({
  namespace: 'serverlessAirline',
  serviceName: 'orders',
});

export const handler = middy(async (event) => {
  metrics.addMetadata('request_id', event.requestId);
  metrics.addMetric('successfulBooking', MetricUnit.Count, 1);
}).use(logMetrics(metrics, {
  captureColdStartMetric: true,
  throwOnEmptyMetrics: true,
}));

这个 logMetrics() 中间软件兼容 @middy/[email protected] 及以上各点.

贡献

如果你有兴趣为这个项目捐款,请参见我们 贡献准则。 。 。 .

路线图

AWS Lambda(英语:TypeScript)的"Powertools"行进图受顾客需求所驱动.
帮助我们确定未来功能或公用事业的优先次序 更新现有 RFC 和功能请求,或 创建新的,在此 GitHub 仓库中.

连接

如何支持 AWS Lambda (TypeScript) 的 Powertools ?

成为参考客户

了解哪些公司正在使用这个图书馆对于帮助在内部确定项目的优先次序很重要。 如果你的同伴们 正在对 AWS Lambda (TypeScript) 使用 Powertools , 您可以请求将您的姓名和标志添加到 README 文件 提高a AWS Lambda( TypeScript) 的辅助电源工具(成为参考) 问题.

除其他外,下列公司使用Powertools:

分享你的工作

分享您为 AWS Lambda (TypeScript) 所做的 Powertools 。 看看社区有什么 已经共享 关于AWS Lambda的Powertools (TypeScript).

使用 Lambda 层

这帮助我们了解谁用Powertools为AWS Lambda(英语:TypeScript (TypeScript))以非侵入性的方式使用Powertools,并帮助我们获得未来对其他AWS Lambda语言的Powertool的投资. 何时 使用图层,您可以添加Powertools作为dev的依赖性,以不影响开发过程.

许可证

这个图书馆根据MIT-0许可证获得许可. 见LICENSE文件.

版本与发布记录

@aws-lambda-powertools/metrics 共发布 131 个版本,首次发布于 2021/12/07;过去 12 个月发布了 11 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.36.0latest2026/10/061 个月前
2.35.02026/08/182 个月前
2.34.02026/07/103 个月前
2.33.12026/05/255 个月前
2.33.02026/04/146 个月前
2.32.02026/03/197 个月前

其他发布通道:next → 2.0.0-alpha.2。

关于 @aws-lambda-powertools/metrics 的常见问题

@aws-lambda-powertools/metrics 是什么?

AWS Lambda (TypeScript) 库的 Powertools 的计量包

如何安装 @aws-lambda-powertools/metrics?

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

@aws-lambda-powertools/metrics 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-lambda-powertools/metrics 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@aws-lambda-powertools/metrics 可以商用吗?

@aws-lambda-powertools/metrics 使用 MIT-0 许可。声明的许可为 MIT-0,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@aws-lambda-powertools/metrics 的下载量有多少?

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

@aws-lambda-powertools/metrics 还在维护吗?

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