aws-lambda: `scaleOnUtilization` should track `Max` statistic instead of `Average`
- 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
Assessment
This issue has not been assessed yet.