or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

api-reference.mdconstraints.mdindex.mdusage-patterns.md
tile.json

tessl/npm-aws-lambda-powertools--metrics

CloudWatch metrics utility for AWS Lambda functions using Embedded Metric Format with asynchronous metric emission

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@aws-lambda-powertools/metrics@2.29.x

To install, run

npx @tessl/cli install tessl/npm-aws-lambda-powertools--metrics@2.29.0

index.mddocs/

AWS Lambda Powertools Metrics

CloudWatch metrics utility for AWS Lambda using Embedded Metric Format (EMF). Emits custom metrics asynchronously without impacting function latency.

Installation

npm install @aws-lambda-powertools/metrics

Core Imports

import { Metrics, MetricUnit, MetricResolution } from '@aws-lambda-powertools/metrics';
import { logMetrics } from '@aws-lambda-powertools/metrics/middleware';
import type { MetricsOptions, Dimensions, ExtraOptions } from '@aws-lambda-powertools/metrics/types';

Basic Usage

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

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

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

Key Components

Metrics Class: Main interface for metric operations. Buffers up to 100 metrics per EMF blob, supports dimensions (max 29), metadata, and automatic/manual flushing.

Metric Buffering: Automatically buffers metrics and flushes when buffer reaches 100 metrics or 100 values per metric.

Dimensions: Low-cardinality key-value pairs for filtering/grouping metrics in CloudWatch (max 29). Cleared after publishing except default dimensions.

Metadata: High-cardinality contextual data searchable in CloudWatch Logs but not in Metrics UI. No limit on entries.

EMF Serialization: Converts metrics to CloudWatch Embedded Metric Format for asynchronous processing via stdout.

Documentation Structure

  • API Reference - Complete API surface with signatures
  • Usage Patterns - Common implementation patterns
  • Constraints - Limits, requirements, and environment variables

MetricUnit Constants

const MetricUnit = {
  // Time
  Seconds: 'Seconds', Microseconds: 'Microseconds', Milliseconds: 'Milliseconds',
  // Size
  Bytes: 'Bytes', Kilobytes: 'Kilobytes', Megabytes: 'Megabytes', Gigabytes: 'Gigabytes', Terabytes: 'Terabytes',
  // Bits
  Bits: 'Bits', Kilobits: 'Kilobits', Megabits: 'Megabits', Gigabits: 'Gigabits', Terabits: 'Terabits',
  // Other
  Percent: 'Percent', Count: 'Count',
  // Rate (per second)
  BytesPerSecond: 'Bytes/Second', KilobytesPerSecond: 'Kilobytes/Second', MegabytesPerSecond: 'Megabytes/Second',
  GigabytesPerSecond: 'Gigabytes/Second', TerabytesPerSecond: 'Terabytes/Second', BitsPerSecond: 'Bits/Second',
  KilobitsPerSecond: 'Kilobits/Second', MegabitsPerSecond: 'Megabits/Second', GigabitsPerSecond: 'Gigabits/Second',
  TerabitsPerSecond: 'Terabits/Second', CountPerSecond: 'Count/Second',
  // None
  NoUnit: 'None'
} as const;

MetricResolution Constants

const MetricResolution = {
  Standard: 60,  // 60 seconds - lower cost
  High: 1        // 1 second - higher cost, better granularity
} as const;