Skip to content

Commit

Permalink
Merge branch 'main' into s3-event-notifications-lambda-upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
mergify[bot] authored Mar 15, 2024
2 parents d72e1a0 + f2ad980 commit 30ab21f
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 4 deletions.
9 changes: 9 additions & 0 deletions packages/aws-cdk-lib/aws-cloudwatch/lib/private/statistic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ export interface PercentileStatistic extends SingleStatistic {
statName: 'percentile';
}

export interface PercentileRankStatistic extends PairStatistic {
statName: 'percentileRank';
}

export interface TrimmedMeanStatistic extends PairStatistic {
statName: 'trimmedMean';
}
Expand Down Expand Up @@ -154,6 +158,7 @@ export function parseStatistic(
):
| SimpleStatistic
| PercentileStatistic
| PercentileRankStatistic
| TrimmedMeanStatistic
| WinsorizedMeanStatistic
| TrimmedCountStatistic
Expand Down Expand Up @@ -188,6 +193,10 @@ export function parseStatistic(
m = parseSingleStatistic(stat, 'p');
if (m) return { ...m, statName: 'percentile' } as PercentileStatistic;

// Percentile Rank statistics
m = parsePairStatistic(stat, 'pr');
if (m) return { ...m, statName: 'percentileRank' } as PercentileRankStatistic;

// Trimmed mean statistics
m = parseSingleStatistic(stat, 'tm') || parsePairStatistic(stat, 'tm');
if (m) return { ...m, statName: 'trimmedMean' } as TrimmedMeanStatistic;
Expand Down
15 changes: 15 additions & 0 deletions packages/aws-cdk-lib/aws-cloudwatch/test/stats.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
import { Metric, Stats } from '../../aws-cloudwatch';
import * as cloudwatch from '../lib';

it.each([
Stats.percentileRank(0),
Stats.percentileRank(0, 1),
Stats.percentileRank(0, undefined),
])('Stats can create valid statistics %s without causing warnings', (statistic) => {
const metric = new Metric({
namespace: 'example',
metricName: 'example',
statistic,
});

expect(metric.warningsV2).toEqual(undefined);
});

test('spot check some constants', () => {
expect(cloudwatch.Stats.AVERAGE).toEqual('Average');
expect(cloudwatch.Stats.IQM).toEqual('IQM');
Expand Down
43 changes: 39 additions & 4 deletions packages/aws-cdk-lib/aws-synthetics/lib/runtime.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,12 @@ export class Runtime {
/**
* `syn-nodejs-puppeteer-3.5` includes the following:
* - Lambda runtime Node.js 14.x
* - Puppeteer-core version 10.1.0
* - Puppeteer-core version 5.5.0
* - Chromium version 92.0.4512
*
* New features:
* - **Updated dependencies**: The only new features in this runtime are the updated dependencies.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.5
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime.
*/
Expand All @@ -36,7 +39,7 @@ export class Runtime {
/**
* `syn-nodejs-puppeteer-3.6` includes the following:
* - Lambda runtime Node.js 14.x
* - Puppeteer-core version 10.1.0
* - Puppeteer-core version 5.5.0
* - Chromium version 92.0.4512
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-3.6
Expand All @@ -47,7 +50,7 @@ export class Runtime {
/**
* `syn-nodejs-puppeteer-3.7` includes the following:
* - Lambda runtime Node.js 14.x
* - Puppeteer-core version 10.1.0
* - Puppeteer-core version 5.5.0
* - Chromium version 92.0.4512
*
* New Features:
Expand Down Expand Up @@ -169,7 +172,7 @@ export class Runtime {
* New Features:
* - **Stability improvements**: Added auto-retry logic for handling intermittent Puppeteer launch errors.
* - **Dependency upgrades**: Upgrades for some third-party dependency packages.
* - **Canaries without Amazon S3 permissions**: Bug fixes, such that canaries that don't have any Amazon S3 permissions can still run. These canaries with no Amazon S3 permissions won't be able to upload screenshots or other artifacts to Amazon S3. For more information about permissions for canaries, see Required roles and permissions for canaries.
* - **Canaries without Amazon S3 permissions**: Bug fixes, such that canaries that don't have any Amazon S3 permissions can still run. These canaries with no Amazon S3 permissions won't be able to upload screenshots or other artifacts to Amazon S3. For more information about permissions for canaries, see {@link https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_CanaryPermissions.html | Required roles and permissions for canaries}.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-6.1
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest NodeJS Puppeteer runtime.
Expand All @@ -191,13 +194,27 @@ export class Runtime {
*/
public static readonly SYNTHETICS_NODEJS_PUPPETEER_6_2 = new Runtime('syn-nodejs-puppeteer-6.2', RuntimeFamily.NODEJS);

/**
* `syn-nodejs-puppeteer-7.0` includes the following:
* - Lambda runtime Node.js 18.x
* - Puppeteer-core version 21.9.0
* - Chromium version 121.0.6167.139
*
* New Features:
* - **Updated versions of the bundled libraries in Puppeteer and Chromium**: The Puppeteer and Chromium dependencies are updated to new versions.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_nodejs_puppeteer.html#CloudWatch_Synthetics_runtimeversion-nodejs-puppeteer-7.0
*/
public static readonly SYNTHETICS_NODEJS_PUPPETEER_7_0 = new Runtime('syn-nodejs-puppeteer-7.0', RuntimeFamily.NODEJS);

/**
* `syn-python-selenium-1.0` includes the following:
* - Lambda runtime Python 3.8
* - Selenium version 3.141.0
* - Chromium version 83.0.4103.0
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.0
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_0 = new Runtime('syn-python-selenium-1.0', RuntimeFamily.PYTHON);

Expand All @@ -214,6 +231,7 @@ export class Runtime {
* - **Cross-Region artifact buckets**: A canary can store its artifacts in an Amazon S3 bucket in a different Region.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.1
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_1 = new Runtime('syn-python-selenium-1.1', RuntimeFamily.PYTHON);

Expand All @@ -227,6 +245,7 @@ export class Runtime {
* - **Updated dependencies**: The only new features in this runtime are the updated dependencies.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.2
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_2 = new Runtime('syn-python-selenium-1.2', RuntimeFamily.PYTHON);

Expand All @@ -240,6 +259,7 @@ export class Runtime {
* - **More precise timestamps**: The start time and stop time of canary runs are now precise to the millisecond.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-1.3
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_1_3 = new Runtime('syn-python-selenium-1.3', RuntimeFamily.PYTHON);

Expand All @@ -256,7 +276,9 @@ export class Runtime {
* Bug fixes:
* - **Timestamp added**: A timestamp has been added to canary logs.
* - **Session re-use**: A bug was fixed so that canaries are now prevented from reusing the session from their previous canary run.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-2.0
* @deprecated Legacy runtime no longer supported by AWS Lambda. Migrate to the latest Python Selenium runtime.
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_2_0 = new Runtime('syn-python-selenium-2.0', RuntimeFamily.PYTHON);

Expand All @@ -273,6 +295,19 @@ export class Runtime {
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_2_1 = new Runtime('syn-python-selenium-2.1', RuntimeFamily.PYTHON);

/**
* `syn-python-selenium-3.0` includes the following:
* - Lambda runtime Python 3.8
* - Selenium version 4.15.1
* - Chromium version 121.0.6167.139
*
* New Features:
* - **Updated versions of the bundled libraries in Chromium**: The Chromium dependency is updated to a new version.
*
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Library_python_selenium.html#CloudWatch_Synthetics_runtimeversion-syn-python-selenium-3.0
*/
public static readonly SYNTHETICS_PYTHON_SELENIUM_3_0 = new Runtime('syn-python-selenium-3.0', RuntimeFamily.PYTHON);

/**
* @param name The name of the runtime version
* @param family The Lambda runtime family
Expand Down

0 comments on commit 30ab21f

Please sign in to comment.