Package software.amazon.awscdk.metricsfacade.alpha


@Stability(Experimental) package software.amazon.awscdk.metricsfacade.alpha

Metrics Facade Alpha Library

---

cdk-constructs: Experimental

The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


CloudWatch Metrics

This library automatically generates typed CloudWatch metric helpers for AWS resources. These metrics come in two flavors: resource-scoped and unscoped.

Resource-Scoped Metrics

Resource-scoped metrics are created from a resource reference (e.g. a Lambda function). The resource dimensions are automatically injected, so metric methods return metrics already filtered to that specific resource.

Metrics Basic Usage

 import software.amazon.awscdk.services.lambda.*;
 import software.amazon.awscdk.services.cloudwatch.*;
 import aws.cdk.metrics.facade.alpha.aws.lambda.LambdaMetrics;
 
 // Works with L2 constructs
 Function fn;
 
 // Also works with L1 constructs
 CfnFunction cfnFunction;
 
 FunctionMetrics fnMetrics = LambdaMetrics.fromFunction(fn);
 
 Alarm.Builder.create(scope, "ErrorAlarm")
         .metric(fnMetrics.errors())
         .threshold(5)
         .evaluationPeriods(1)
         .comparisonOperator(ComparisonOperator.GREATER_THAN_THRESHOLD)
         .build();
 FunctionMetrics cfnMetrics = LambdaMetrics.fromFunction(cfnFunction);
 

Metric Features

 import software.amazon.awscdk.services.lambda.*;
 import aws.cdk.metrics.facade.alpha.aws.lambda.LambdaMetrics;
 
 Function fn;
 
 FunctionMetrics fnMetrics = LambdaMetrics.fromFunction(fn);
 
 // FunctionName dimension is automatically injected from the function reference
 IMetric metric = fnMetrics.invocations();
 

Statistic Override: Override default statistics via MetricOptions

 import software.amazon.awscdk.services.lambda.*;
 import aws.cdk.metrics.facade.alpha.aws.lambda.LambdaMetrics;
 
 Function fn;
 
 FunctionMetrics fnMetrics = LambdaMetrics.fromFunction(fn);
 
 // Default statistic for Duration is Average
 IMetric defaultMetric = fnMetrics.duration();
 
 // Override statistic via MetricOptions
 IMetric p99Metric = fnMetrics.duration(MetricOptions.builder().statistic("p99").build());
 

Unscoped Metrics

Unscoped metrics are not tied to a specific resource. They can be created with explicit dimensions or with no dimensions for account-wide metrics.

Unscoped Metrics Basic Usage

 import aws.cdk.metrics.facade.alpha.aws.lambda.LambdaMetrics;
 import software.amazon.awscdk.services.cloudwatch.*;
 
 
 // Explicit dimensions
 FunctionMetrics fnMetrics = new FunctionMetrics(new FunctionMetricsProps()
         .functionName("my-function")
         );
 fnMetrics.errors();
 
 // Per-resource dimensions (e.g. alias or version)
 ResourceMetrics resourceMetrics = new ResourceMetrics(new ResourceMetricsProps()
         .functionName("my-function")
         .resource("prod")
         );
 resourceMetrics.provisionedConcurrencyUtilization();
 
 // Account-wide metrics (no dimensions)
 AccountMetrics accountMetrics = new AccountMetrics();
 accountMetrics.concurrentExecutions();
 accountMetrics.unreservedConcurrentExecutions();
 

Available Metrics

Metrics are generated from the AWS CloudWatch metrics spec database. Common examples:

Lambda Metrics:

  • invocations() - Function invocation count
  • errors() - Function error count
  • duration() - Function execution duration
  • throttles() - Function throttle count
  • concurrentExecutions() - Concurrent execution count

Import metrics from service-specific modules:

 import aws.cdk.metrics.facade.alpha.aws.lambda.LambdaMetrics;
 
  • Classes
    Class
    Description