aws / aws/aws-cdk

aws-lambda: `scaleOnUtilization` should track `Max` statistic instead of `Average`

Open
#23,088 3 comments 1 reaction 1 assignee Claimed by @kaizencc View on GitHub
@aws-cdk/aws-lambda effort/medium feature-request p2
Dominant language
TypeScript
Stars
12.9k
Forks
4.6k
Avg merge
1d 19h
Merged PRs (30d)
74

Description

### Describe the bug

Lambda auto-scaling using `scaleOnUtilization` doesn't work properly as it is tracking `Average` of `ProvisionedConcurrencyUtilization` instead of `Max`.

### Expected Behavior

`scaleOnUtilization` is tracking `Max` of `ProvisionedConcurrencyUtilization`

### Current Behavior

`scaleOnUtilization` is tracking `Average` of `ProvisionedConcurrencyUtilization`.

This doesn't work properly and our `ProvisionedConcurrencyUtilization` is hitting 100% regularly.

### Reproduction Steps

```
const autoScaling = alias.addAutoScaling({
minCapacity: 15,
maxCapacity: 50
});

autoScaling.scaleOnUtilization({
utilizationTarget: 0.3
});
```

### Possible Solution

https://github.com/aws/aws-cdk/blob/fedd51b045cb312e7259d1d20fc119c086d7d31f/packages/%40aws-cdk/aws-lambda/lib/private/scalable-function-attribute.ts#L23

Here we should use `Max`.

### Additional Information/Context

_No response_

### CDK CLI Version

2.49.0 (build 793dd76)

### Framework Version

_No response_

### Node.js Version

v14.21.1

### OS

Linux

### Language

Typescript

### Language Version

_No response_

### Other information

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.