class Application (construct)
Language | Type name |
---|---|
.NET | Amazon.CDK.AWS.KinesisAnalyticsFlink.Application |
Java | software.amazon.awscdk.services.kinesis.analytics.flink.Application |
Python | aws_cdk.aws_kinesisanalytics_flink.Application |
TypeScript (source) | @aws-cdk/aws-kinesisanalytics-flink ยป Application |
Implements
IConstruct
, IConstruct
, IDependable
, IResource
, IApplication
, IGrantable
The L2 construct for Flink Kinesis Data Applications.
Example
import * as path from 'path';
import * as core from '@aws-cdk/core';
import * as flink from '../lib';
import * as cloudwatch from '@aws-cdk/aws-cloudwatch';
const app = new core.App();
const stack = new core.Stack(app, 'FlinkAppTest');
const flinkApp = new flink.Application(stack, 'App', {
code: flink.ApplicationCode.fromAsset(path.join(__dirname, 'code-asset')),
runtime: flink.Runtime.FLINK_1_11,
});
new cloudwatch.Alarm(stack, 'Alarm', {
metric: flinkApp.metricFullRestarts(),
evaluationPeriods: 1,
threshold: 3,
});
///! hide
app.synth();
Initializer
new Application(scope: Construct, id: string, props: ApplicationProps)
Parameters
- scope
Construct
- id
string
- props
Application
Props
Construct Props
Name | Type | Description |
---|---|---|
code | Application | The Flink code asset to run. |
runtime | Runtime | The Flink version to use for this application. |
application | string | A name for your Application that is unique to an AWS account. |
auto | boolean | Whether the Kinesis Data Analytics service can increase the parallelism of the application in response to resource usage. |
checkpoint | Duration | The interval between checkpoints. |
checkpointing | boolean | Whether checkpointing is enabled while your application runs. |
log | ILog | The log group to send log entries to. |
log | Log | The level of log verbosity from the Flink application. |
metrics | Metrics | Describes the granularity of the CloudWatch metrics for an application. |
min | Duration | The minimum amount of time in to wait after a checkpoint finishes to start a new checkpoint. |
parallelism? | number | The initial parallelism for the application. |
parallelism | number | The Flink parallelism allowed per Kinesis Processing Unit (KPU). |
property | Property | Configuration PropertyGroups. |
removal | Removal | Provide a RemovalPolicy to override the default. |
role? | IRole | A role to use to grant permissions to your application. |
snapshots | boolean | Determines if Flink snapshots are enabled. |
code
Type:
Application
The Flink code asset to run.
runtime
Type:
Runtime
The Flink version to use for this application.
applicationName?
Type:
string
(optional, default: CloudFormation-generated name)
A name for your Application that is unique to an AWS account.
autoScalingEnabled?
Type:
boolean
(optional, default: true)
Whether the Kinesis Data Analytics service can increase the parallelism of the application in response to resource usage.
checkpointInterval?
Type:
Duration
(optional, default: 1 minute)
The interval between checkpoints.
checkpointingEnabled?
Type:
boolean
(optional, default: true)
Whether checkpointing is enabled while your application runs.
logGroup?
Type:
ILog
(optional, default: CDK's default LogGroup)
The log group to send log entries to.
logLevel?
Type:
Log
(optional, default: FlinkLogLevel.INFO)
The level of log verbosity from the Flink application.
metricsLevel?
Type:
Metrics
(optional, default: MetricsLevel.APPLICATION)
Describes the granularity of the CloudWatch metrics for an application.
Use caution with Parallelism level metrics. Parallelism granularity logs metrics for each parallel thread and can quickly become expensive when parallelism is high (e.g. > 64).
minPauseBetweenCheckpoints?
Type:
Duration
(optional, default: 5 seconds)
The minimum amount of time in to wait after a checkpoint finishes to start a new checkpoint.
parallelism?
Type:
number
(optional, default: 1)
The initial parallelism for the application.
Kinesis Data Analytics can stop the app, increase the parallelism, and start the app again if autoScalingEnabled is true (the default value).
parallelismPerKpu?
Type:
number
(optional, default: 1)
The Flink parallelism allowed per Kinesis Processing Unit (KPU).
propertyGroups?
Type:
Property
(optional, default: No property group configuration provided to the Flink app)
Configuration PropertyGroups.
You can use these property groups to pass arbitrary runtime configuration values to your Flink app.
removalPolicy?
Type:
Removal
(optional, default: RemovalPolicy.DESTROY)
Provide a RemovalPolicy to override the default.
role?
Type:
IRole
(optional, default: a new Role will be created)
A role to use to grant permissions to your application.
Prefer omitting this property and using the default role.
snapshotsEnabled?
Type:
boolean
(optional, default: true)
Determines if Flink snapshots are enabled.
Properties
Name | Type | Description |
---|---|---|
application | string | The application ARN. |
application | string | The name of the Flink application. |
env | Resource | The environment this resource belongs to. |
grant | IPrincipal | The principal to grant permissions to. |
node | Construct | The construct tree node associated with this construct. |
stack | Stack | The stack in which this resource is defined. |
role? | IRole | The application IAM role. |
applicationArn
Type:
string
The application ARN.
applicationName
Type:
string
The name of the Flink application.
env
Type:
Resource
The environment this resource belongs to.
For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.
grantPrincipal
Type:
IPrincipal
The principal to grant permissions to.
node
Type:
Construct
The construct tree node associated with this construct.
stack
Type:
Stack
The stack in which this resource is defined.
role?
Type:
IRole
(optional)
The application IAM role.
Methods
Name | Description |
---|---|
add | Implement the convenience {@link IApplication.addToPrincipalPolicy} method. |
apply | Apply the given removal policy to this resource. |
metric(metricName, props?) | Return a CloudWatch metric associated with this Flink application. |
metric | The time (in milliseconds) this task or operator is back pressured per second. |
metric | The time (in milliseconds) this task or operator is busy (neither idle nor back pressured) per second. |
metric | The overall percentage of CPU utilization across task managers. |
metric | The last watermark this application/operator/task/thread has received. |
metric | The last watermark this application/operator/task/thread has received. |
metric | The time elapsed during an outage for failing/recovering jobs. |
metric | The total number of times this job has fully restarted since it was submitted. |
metric | Overall heap memory utilization across task managers. |
metric | The time (in milliseconds) this task or operator is idle (has no data to process) per second. |
metric | The number of Kinesis Processing Units that are used to run your stream processing application. |
metric | The time it took to complete the last checkpoint. |
metric | The total size of the last checkpoint. |
metric | The total amount of managed memory. |
metric | The amount of managed memory currently used. |
metric | Derived from managedMemoryUsed/managedMemoryTotal. |
metric | The number of records this operator or task has dropped due to arriving late. |
metric | The total number of records this application, operator, or task has received. |
metric | The total number of records this application, operator or task has received per second. |
metric | The total number of records this application, operator or task has emitted. |
metric | The total number of records this application, operator or task has emitted per second. |
metric | The number of times checkpointing has failed. |
metric | The total number of old garbage collection operations that have occurred across all task managers. |
metric | The total time spent performing old garbage collection operations. |
metric | The total number of live threads used by the application. |
metric | The time that the job has been running without interruption. |
to | Returns a string representation of this construct. |
static from | Import an existing application defined outside of CDK code by applicationArn. |
static from | Import an existing Flink application defined outside of CDK code by applicationName. |
ToRolePolicy(policyStatement)
addpublic addToRolePolicy(policyStatement: PolicyStatement): boolean
Parameters
- policyStatement
Policy
Statement
Returns
boolean
Implement the convenience {@link IApplication.addToPrincipalPolicy} method.
RemovalPolicy(policy)
applypublic applyRemovalPolicy(policy: RemovalPolicy): void
Parameters
- policy
Removal
Policy
Apply the given removal policy to this resource.
The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.
The resource can be deleted (RemovalPolicy.DESTROY
), or left in your AWS
account for data recovery and cleanup later (RemovalPolicy.RETAIN
).
metric(metricName, props?)
public metric(metricName: string, props?: MetricOptions): Metric
Parameters
- metricName
string
โ The name of the metric. - props
Metric
โ Customization properties.Options
Returns
Return a CloudWatch metric associated with this Flink application.
BackPressuredTimeMsPerSecond(props?)
metricpublic metricBackPressuredTimeMsPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time (in milliseconds) this task or operator is back pressured per second.
Units: Milliseconds
Reporting Level: Operator, Task, Parallelism
BusyTimePerMsPerSecond(props?)
metricpublic metricBusyTimePerMsPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time (in milliseconds) this task or operator is busy (neither idle nor back pressured) per second.
Can be NaN, if the value could not be calculated.
Units: Milliseconds
Reporting Level: Operator, Task, Parallelism
CpuUtilization(props?)
metricpublic metricCpuUtilization(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The overall percentage of CPU utilization across task managers.
For example, if there are five task managers, Kinesis Data Analytics publishes five samples of this metric per reporting interval.
Units: Percentage
Reporting Level: Application
CurrentInputWatermark(props?)
metricpublic metricCurrentInputWatermark(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The last watermark this application/operator/task/thread has received.
Units: Milliseconds
Reporting Level: Application, Operator, Task, Parallelism
CurrentOutputWatermark(props?)
metricpublic metricCurrentOutputWatermark(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The last watermark this application/operator/task/thread has received.
Units: Milliseconds
Reporting Level: Application, Operator, Task, Parallelism
Downtime(props?)
metricpublic metricDowntime(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time elapsed during an outage for failing/recovering jobs.
Units: Milliseconds
Reporting Level: Application
FullRestarts(props?)
metricpublic metricFullRestarts(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of times this job has fully restarted since it was submitted.
This metric does not measure fine-grained restarts.
Units: Count
Reporting Level: Application
HeapMemoryUtilization(props?)
metricpublic metricHeapMemoryUtilization(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
Overall heap memory utilization across task managers.
For example, if there are five task managers, Kinesis Data Analytics publishes five samples of this metric per reporting interval.
Units: Percentage
Reporting Level: Application
IdleTimeMsPerSecond(props?)
metricpublic metricIdleTimeMsPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time (in milliseconds) this task or operator is idle (has no data to process) per second.
Idle time excludes back pressured time, so if the task is back pressured it is not idle.
Units: Milliseconds
Reporting Level: Operator, Task, Parallelism
Kpus(props?)
metricpublic metricKpus(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The number of Kinesis Processing Units that are used to run your stream processing application.
The average number of KPUs used each hour determines the billing for your application.
Units: Count
Reporting Level: Application
LastCheckpointDuration(props?)
metricpublic metricLastCheckpointDuration(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time it took to complete the last checkpoint.
Units: Milliseconds
Reporting Level: Application
LastCheckpointSize(props?)
metricpublic metricLastCheckpointSize(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total size of the last checkpoint.
Units: Bytes
Reporting Level: Application
ManagedMemoryTotal(props?)
metricpublic metricManagedMemoryTotal(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total amount of managed memory.
Units: Bytes
Reporting Level: Application, Operator, Task, Parallelism
ManagedMemoryUsed(props?)
metricpublic metricManagedMemoryUsed(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The amount of managed memory currently used.
Units: Bytes
Reporting Level: Application, Operator, Task, Parallelism
ManagedMemoryUtilization(props?)
metricpublic metricManagedMemoryUtilization(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
Derived from managedMemoryUsed/managedMemoryTotal.
Units: Percentage
Reporting Level: Application, Operator, Task, Parallelism
NumLateRecordsDropped(props?)
metricpublic metricNumLateRecordsDropped(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The number of records this operator or task has dropped due to arriving late.
Units: Count
Reporting Level: Application, Operator, Task, Parallelism
NumRecordsIn(props?)
metricpublic metricNumRecordsIn(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator, or task has received.
Units: Count
Reporting Level: Application, Operator, Task, Parallelism
NumRecordsInPerSecond(props?)
metricpublic metricNumRecordsInPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator or task has received per second.
Units: Count/Second
Reporting Level: Application, Operator, Task, Parallelism
NumRecordsOut(props?)
metricpublic metricNumRecordsOut(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator or task has emitted.
Units: Count
Reporting Level: Application, Operator, Task, Parallelism
NumRecordsOutPerSecond(props?)
metricpublic metricNumRecordsOutPerSecond(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of records this application, operator or task has emitted per second.
Units: Count/Second
Reporting Level: Application, Operator, Task, Parallelism
NumberOfFailedCheckpoints(props?)
metricpublic metricNumberOfFailedCheckpoints(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The number of times checkpointing has failed.
Units: Count
Reporting Level: Application
OldGenerationGCCount(props?)
metricpublic metricOldGenerationGCCount(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of old garbage collection operations that have occurred across all task managers.
Units: Count
Reporting Level: Application
OldGenerationGCTime(props?)
metricpublic metricOldGenerationGCTime(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total time spent performing old garbage collection operations.
Units: Milliseconds
Reporting Level: Application
ThreadsCount(props?)
metricpublic metricThreadsCount(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The total number of live threads used by the application.
Units: Count
Reporting Level: Application
Uptime(props?)
metricpublic metricUptime(props?: MetricOptions): Metric
Parameters
- props
Metric
Options
Returns
The time that the job has been running without interruption.
Units: Milliseconds
Reporting Level: Application
String()
topublic toString(): string
Returns
string
Returns a string representation of this construct.
ApplicationArn(scope, id, applicationArn)
static frompublic static fromApplicationArn(scope: Construct, id: string, applicationArn: string): IApplication
Parameters
- scope
Construct
- id
string
- applicationArn
string
Returns
Import an existing application defined outside of CDK code by applicationArn.
ApplicationName(scope, id, applicationName)
static frompublic static fromApplicationName(scope: Construct, id: string, applicationName: string): IApplication
Parameters
- scope
Construct
- id
string
- applicationName
string
Returns
Import an existing Flink application defined outside of CDK code by applicationName.