Interface CloudWatchAgentIntegrationProps
- All Superinterfaces:
CloudWatchAgentOptions,software.amazon.jsii.JsiiSerializable
- All Known Implementing Classes:
CloudWatchAgentIntegrationProps.Jsii$Proxy
@Generated(value="jsii-pacmak/1.121.0 (build d7af9b9)",
date="2025-12-18T18:20:21.082Z")
@Stability(Experimental)
public interface CloudWatchAgentIntegrationProps
extends software.amazon.jsii.JsiiSerializable, CloudWatchAgentOptions
(experimental) Properties for integrating CloudWatch Agent into an ECS task definition.
Example:
import software.constructs.Construct;
import software.amazon.awscdk.services.applicationsignals.alpha.*;
import software.amazon.awscdk.*;
import software.amazon.awscdk.services.ec2.*;
import software.amazon.awscdk.services.ecs.*;
public class MyStack extends Stack {
public MyStack() {
this(null);
}
public MyStack(Construct scope) {
this(scope, null);
}
public MyStack(Construct scope, String id) {
this(scope, id, StackProps.builder().build());
}
public MyStack(Construct scope, String id, StackProps props) {
super(scope, id, props);
Vpc vpc = Vpc.Builder.create(this, "TestVpc").build();
Cluster cluster = Cluster.Builder.create(this, "TestCluster").vpc(vpc).build();
// Define Task Definition for CloudWatch agent (Daemon)
Ec2TaskDefinition cwAgentTaskDefinition = Ec2TaskDefinition.Builder.create(this, "CloudWatchAgentTaskDefinition")
.networkMode(NetworkMode.HOST)
.build();
CloudWatchAgentIntegration.Builder.create(this, "CloudWatchAgentIntegration")
.taskDefinition(cwAgentTaskDefinition)
.containerName("ecs-cwagent")
.enableLogging(false)
.cpu(128)
.memoryLimitMiB(64)
.portMappings(List.of(PortMapping.builder()
.containerPort(4316)
.hostPort(4316)
.build(), PortMapping.builder()
.containerPort(2000)
.hostPort(2000)
.build()))
.build();
// Create the CloudWatch Agent daemon service
// Create the CloudWatch Agent daemon service
Ec2Service.Builder.create(this, "CloudWatchAgentDaemon")
.cluster(cluster)
.taskDefinition(cwAgentTaskDefinition)
.daemon(true)
.build();
// Define Task Definition for user application
Ec2TaskDefinition sampleAppTaskDefinition = Ec2TaskDefinition.Builder.create(this, "SampleAppTaskDefinition")
.networkMode(NetworkMode.HOST)
.build();
sampleAppTaskDefinition.addContainer("app", ContainerDefinitionOptions.builder()
.image(ContainerImage.fromRegistry("test/sample-app"))
.cpu(0)
.memoryLimitMiB(512)
.build());
// No CloudWatch Agent side car is needed as application container communicates to CloudWatch Agent daemon through host network
// No CloudWatch Agent side car is needed as application container communicates to CloudWatch Agent daemon through host network
ApplicationSignalsIntegration.Builder.create(this, "ApplicationSignalsIntegration")
.taskDefinition(sampleAppTaskDefinition)
.instrumentation(InstrumentationProps.builder()
.sdkVersion(PythonInstrumentationVersion.V0_8_0)
.build())
.serviceName("sample-app")
.build();
Ec2Service.Builder.create(this, "MySampleApp")
.cluster(cluster)
.taskDefinition(sampleAppTaskDefinition)
.desiredCount(1)
.build();
}
}
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classA builder forCloudWatchAgentIntegrationPropsstatic final classAn implementation forCloudWatchAgentIntegrationProps -
Method Summary
Modifier and TypeMethodDescriptionbuilder()(experimental) The task definition to integrate CloudWatch agent into.Methods inherited from interface software.amazon.awscdk.services.applicationsignals.alpha.CloudWatchAgentOptions
getAgentConfig, getContainerName, getCpu, getEnableLogging, getEssential, getMemoryLimitMiB, getMemoryReservationMiB, getOperatingSystemFamily, getPortMappingsMethods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Method Details
-
getTaskDefinition
(experimental) The task definition to integrate CloudWatch agent into.[disable-awslint:ref-via-interface]
-
builder
-