-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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(aws-kinesisanalyticsv2): L2 construct for Flink applications #12464
Conversation
Title does not follow the guidelines of Conventional Commits. Please adjust title before merge. |
@iliapolo Any feedback on the README portion of this PR or is it time to proceed with implementation? |
This is great. Let's start with the implementation. I love that you decided to create a concrete construct for |
This PR has not received a response in a while. If you want to keep this issue open, please leave a comment below and auto-close will be canceled. |
a84a0cf
to
c99efb3
Compare
Still working on this. Will update PR description with progress. One important item to consider is how to deal with the fact that the |
@skinny85 Would it be possible to get some early feedback on this PR? I've added a list of open questions to the PR description where I could use some guidance. |
I'll take a detailed look tomorrow, I have it on my ToDo list 🙂 |
In the meantime, any chance of getting rid of the |
Copied example-resource construct.
40b7b06
to
5742d0a
Compare
The trade off here is that we won't allow users to control the stream properties.
3ccf63d
to
b951b97
Compare
aws-lambda-python package is failing with
error: Can not find Rust compiler
Not sure if this is related to changes in this PR.
…On Sun, Feb 7, 2021 at 3:57 PM AWS CDK Automation ***@***.***> wrote:
AWS CodeBuild CI Report
- CodeBuild project: AutoBuildProject89A8053A-LhjRyN9kxr8o
- Commit ID: ad2f743
<ad2f743>
- Result: FAILED
- Build Logs
<https://xuogv3vm9j.execute-api.us-east-1.amazonaws.com/Prod/buildlogs?key=007d399a-7e9b-4d42-a371-03af476b08c1%2Fbuild.log>
(available for 30 days)
*Powered by github-codebuild-logs
<https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:277187709615:applications~github-codebuild-logs>,
available on the AWS Serverless Application Repository
<https://aws.amazon.com/serverless/serverlessrepo/>*
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#12464 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAADWQPJE7EFV4VJKFMLNTTS54SGZANCNFSM4V56BBIQ>
.
|
That's an unrelated problem, we're working on it! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much for the contribution @mitchlloyd !
Pull request has been modified.
Pull request has been modified.
Thank you for contributing! Your pull request will be updated from master and then merged automatically (do not update manually, and be sure to allow changes to be pushed to your fork). |
AWS CodeBuild CI Report
Powered by github-codebuild-logs, available on the AWS Serverless Application Repository |
…s#12464) Opened for aws#12407. Notes for review: 1. Flink and SQL applications share almost no properties so having separate ka.FlinkApplication and ka.SqlApplication constructs seems correct. I can't see why these would even share an abstract base class. 1. I'm trying to focus on shipping the Flink construct before SQL since they are so different and I haven't used an SQL application. 1. I unested lots of the configuration for discoverability. The Cfn naming is verbose (usually with prefixes) so collisions are unlikely. [This](https://github.com/aws-samples/amazon-kinesis-analytics-streaming-etl/blob/master/cdk/lib/streaming-etl.ts#L100) is a pretty good example of using CDK today to build a Flink app. Running List of Open Questions ------------------------------- 1. ~aws-kinesisanalytics exports both `aws-kinesisanalytics` and `aws-kinesisanalyticsv2` generated code. How should we resolve this? Currently I've exported `aws-kinesisanalyticsv2` from `aws-kinesisanalyticsv2` and haven't changed the other package.~ Kept this package isolated from aws-kinesisanalytics at the expense of duplicate generated code. 2. ~I'm not confident with the use cases for the `fromAttributes` factory. I'd prefer to leave this factory method out in this initial PR if possible, but I'm also open to comments about what use cases this should handle.~ 3. ~All logging options could be flattened into FlinkApplicationProps (e.g. logRentention, logGroupName, logStreamName, logEncryptionKey...). My first thought was to provide a new `ka.Logging` type that can be passed to customize the logGroup and logStream. There may be some other middle ground that could let users pass in a logGroup and then a logStream.~ Went with the flat list of props added to FlinkApplicationProps 4. ~When I run `yarn build` I get this error even though I've already tagged the class.~ Was missing a `gen` yarn script entry. 5. ~Should this module become `aws-flink-application` or `aws-kinesisanalytics-flink` to side step the confusion of having seemingly unrelated constructs in the same module at the expense of clashing with CloudFormation?~ New module name: `aws-kinesisanalytics-flink`. Todo ---- - [x] Inline documentation - [x] Add property groups - [x] checkpointEnabled - [x] minPauseBetweenCheckpoints - [x] logLevel - [x] metricsLevel - [x] autoscalingEnabled - [x] parallelism - [x] parallelismPerKpu - [x] snapshotsEnabled - [x] Figure out fromAttributes approach - [x] Add log stream - [x] Decide on logging options approach - [x] Add metrics access - [x] Validate application name - [x] Integration tests ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
I PR'd the [original version of the aws-kinesisanalytics-flink constructs](#12464) to CDK. I'm following up to add the missing `metric*` methods according to the [design guidelines](https://github.com/aws/aws-cdk/blob/master/docs/DESIGN_GUIDELINES.md#metrics). [Reference for Flink Application metrics](https://docs.aws.amazon.com/kinesisanalytics/latest/java/metrics-dimensions.html). I have a few running Flink apps and I was able to see that KPUs are also reported for the Flink apps. ---- ### All Submissions: * [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/master/CONTRIBUTING.md) * [x] I don't think conventional metric changes require an update to the README. ### New Features * [x] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/master/INTEGRATION_TESTS.md)? * [x] Did you use `cdk-integ` to deploy the infrastructure and generate the snapshot (i.e. `cdk-integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
…19599) I PR'd the [original version of the aws-kinesisanalytics-flink constructs](aws#12464) to CDK. I'm following up to add the missing `metric*` methods according to the [design guidelines](https://github.com/aws/aws-cdk/blob/master/docs/DESIGN_GUIDELINES.md#metrics). [Reference for Flink Application metrics](https://docs.aws.amazon.com/kinesisanalytics/latest/java/metrics-dimensions.html). I have a few running Flink apps and I was able to see that KPUs are also reported for the Flink apps. ---- ### All Submissions: * [x] Have you followed the guidelines in our [Contributing guide?](https://github.com/aws/aws-cdk/blob/master/CONTRIBUTING.md) * [x] I don't think conventional metric changes require an update to the README. ### New Features * [x] Have you added the new feature to an [integration test](https://github.com/aws/aws-cdk/blob/master/INTEGRATION_TESTS.md)? * [x] Did you use `cdk-integ` to deploy the infrastructure and generate the snapshot (i.e. `cdk-integ` without `--dry-run`)? *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Opened for #12407.
Notes for review:
Running List of Open Questions
aws-kinesisanalytics exports bothKept this package isolated from aws-kinesisanalytics at the expense of duplicate generated code.aws-kinesisanalytics
andaws-kinesisanalyticsv2
generated code. How should we resolve this? Currently I've exportedaws-kinesisanalyticsv2
fromaws-kinesisanalyticsv2
and haven't changed the other package.I'm not confident with the use cases for thefromAttributes
factory. I'd prefer to leave this factory method out in this initial PR if possible, but I'm also open to comments about what use cases this should handle.All logging options could be flattened into FlinkApplicationProps (e.g. logRentention, logGroupName, logStreamName, logEncryptionKey...). My first thought was to provide a newWent with the flat list of props added to FlinkApplicationPropska.Logging
type that can be passed to customize the logGroup and logStream. There may be some other middle ground that could let users pass in a logGroup and then a logStream.When I runyarn build
I get this error even though I've already tagged the class.Was missing a
gen
yarn script entry.Should this module becomeNew module name:aws-flink-application
oraws-kinesisanalytics-flink
to side step the confusion of having seemingly unrelated constructs in the same module at the expense of clashing with CloudFormation?aws-kinesisanalytics-flink
.Todo
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license