Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(cloudwatch): Stats factory class for metric strings #23172

Merged
merged 5 commits into from Nov 30, 2022
Merged

Conversation

rix0rrr
Copy link
Contributor

@rix0rrr rix0rrr commented Nov 30, 2022

The Statistic enum type was incorrectly publicly exposed (it should only have been visible internally to the package), and was enhanced in PR #23074 to have more enum values such as P10, P50, P99_9, etc.

The stringification of this Statistic type would only have worked in TypeScript anyway (in JSII languages like Java and Python we cannot rely on the string values of enums), and the fact that enums cannot be parameterized made it so that we used to have a lot of redundant enum values.

Deprecate the Statistic type, and introduce a new factory class, Stats, whose sole purpose is to produce formatted strings to use as CloudWatch statistic values, and advertise the use of this class.

(We probably shouldn't have been using string as the type in the first place, but given that we are factories to produce them seems to be the next best thing).


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

The `Statistic` enum type was incorrectly publicly exposed (it should
only have been visible internally to the package), and was enhanced in
PR #23074 to have more enum values such as `P10`, `P50`, `P99_9`, etc.

The stringification of this `Statistic` type would only have worked in
TypeScript anyway (in JSII languages like Java and Python we cannot rely
on the string values of enums), and the fact that enums cannot be
parameterized made it so that we used to have a lot of redundant enum
values.

Introduce a new factory class, `Stats`, whose sole purpose is to
produce formatted strings to use as CloudWatch `statistic` values,
and advertise the use of this class.

(We probably shouldn't have been using `string` as the type in the first
place, but given that we are factories to produce them seems to be the
next best thing).
@rix0rrr rix0rrr requested a review from a team November 30, 2022 11:16
@rix0rrr rix0rrr self-assigned this Nov 30, 2022
@gitpod-io
Copy link

gitpod-io bot commented Nov 30, 2022

@aws-cdk-automation aws-cdk-automation requested a review from a team November 30, 2022 11:16
@github-actions github-actions bot added the p2 label Nov 30, 2022
@mergify mergify bot added the contribution/core This is a PR that came from AWS. label Nov 30, 2022
@rix0rrr rix0rrr added the pr-linter/exempt-integ-test The PR linter will not require integ test changes label Nov 30, 2022
Copy link
Contributor

@mrgrain mrgrain left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Thanks for catching this.

@mergify
Copy link
Contributor

mergify bot commented Nov 30, 2022

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@mergify
Copy link
Contributor

mergify bot commented Nov 30, 2022

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

@aws-cdk-automation
Copy link
Collaborator

AWS CodeBuild CI Report

  • CodeBuild project: AutoBuildv2Project1C6BFA3F-wQm2hXv2jqQv
  • Commit ID: 55116fa
  • Result: SUCCEEDED
  • Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

@mergify mergify bot merged commit 0c9c4b4 into main Nov 30, 2022
@mergify mergify bot deleted the huijbers/metrics branch November 30, 2022 13:46
@mergify
Copy link
Contributor

mergify bot commented Nov 30, 2022

Thank you for contributing! Your pull request will be updated from main and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork).

brennanho pushed a commit to brennanho/aws-cdk that referenced this pull request Dec 9, 2022
The `Statistic` enum type was incorrectly publicly exposed (it should only have been visible internally to the package), and was enhanced in PR aws#23074 to have more enum values such as `P10`, `P50`, `P99_9`, etc.

The stringification of this `Statistic` type would only have worked in TypeScript anyway (in JSII languages like Java and Python we cannot rely on the string values of enums), and the fact that enums cannot be parameterized made it so that we used to have a lot of redundant enum values.

Deprecate the `Statistic` type, and introduce a new factory class, `Stats`, whose sole purpose is to produce formatted strings to use as CloudWatch `statistic` values, and advertise the use of this class.

(We probably shouldn't have been using `string` as the type in the first place, but given that we are factories to produce them seems to be the next best thing).


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
brennanho pushed a commit to brennanho/aws-cdk that referenced this pull request Jan 20, 2023
The `Statistic` enum type was incorrectly publicly exposed (it should only have been visible internally to the package), and was enhanced in PR aws#23074 to have more enum values such as `P10`, `P50`, `P99_9`, etc.

The stringification of this `Statistic` type would only have worked in TypeScript anyway (in JSII languages like Java and Python we cannot rely on the string values of enums), and the fact that enums cannot be parameterized made it so that we used to have a lot of redundant enum values.

Deprecate the `Statistic` type, and introduce a new factory class, `Stats`, whose sole purpose is to produce formatted strings to use as CloudWatch `statistic` values, and advertise the use of this class.

(We probably shouldn't have been using `string` as the type in the first place, but given that we are factories to produce them seems to be the next best thing).


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
brennanho pushed a commit to brennanho/aws-cdk that referenced this pull request Feb 22, 2023
The `Statistic` enum type was incorrectly publicly exposed (it should only have been visible internally to the package), and was enhanced in PR aws#23074 to have more enum values such as `P10`, `P50`, `P99_9`, etc.

The stringification of this `Statistic` type would only have worked in TypeScript anyway (in JSII languages like Java and Python we cannot rely on the string values of enums), and the fact that enums cannot be parameterized made it so that we used to have a lot of redundant enum values.

Deprecate the `Statistic` type, and introduce a new factory class, `Stats`, whose sole purpose is to produce formatted strings to use as CloudWatch `statistic` values, and advertise the use of this class.

(We probably shouldn't have been using `string` as the type in the first place, but given that we are factories to produce them seems to be the next best thing).


----

*By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contribution/core This is a PR that came from AWS. p2 pr-linter/exempt-integ-test The PR linter will not require integ test changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants