Package software.amazon.awscdk.metricsfacade.alpha
Metrics Facade Alpha Library
---
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 counterrors()- Function error countduration()- Function execution durationthrottles()- Function throttle countconcurrentExecutions()- Concurrent execution count
Import metrics from service-specific modules:
import aws.cdk.metrics.facade.alpha.aws.lambda.LambdaMetrics;
-
Classes