Experimental
@aws-cdk/aws-applicationsignals-alpha is an experimental (alpha) package: its API may change in any release, without a major version bump.
JavaInstrumentationVersion Class
Available versions for Java instrumentation.
Example
ts
import { Construct } from 'constructs';
import * as appsignals from '@aws-cdk/aws-applicationsignals-alpha';
import * as cdk from 'aws-cdk-lib';
import * as ec2 from 'aws-cdk-lib/aws-ec2';
import * as ecs from 'aws-cdk-lib/aws-ecs';
class MyStack extends cdk.Stack {
public constructor(scope?: Construct, id?: string, props: cdk.StackProps = {}) {
super();
const vpc = new ec2.Vpc(this, 'TestVpc', {});
const cluster = new ecs.Cluster(this, 'TestCluster', { vpc });
const fargateTaskDefinition = new ecs.FargateTaskDefinition(this, 'SampleAppTaskDefinition', {
cpu: 2048,
memoryLimitMiB: 4096,
});
fargateTaskDefinition.addContainer('app', {
image: ecs.ContainerImage.fromRegistry('test/sample-app'),
});
new appsignals.ApplicationSignalsIntegration(this, 'ApplicationSignalsIntegration', {
taskDefinition: fargateTaskDefinition,
instrumentation: {
sdkVersion: appsignals.JavaInstrumentationVersion.V2_10_0,
},
serviceName: 'sample-app',
cloudWatchAgentSidecar: {
containerName: 'cloudwatch-agent',
enableLogging: true,
cpu: 256,
memoryLimitMiB: 512,
}
});
new ecs.FargateService(this, 'MySampleApp', {
cluster: cluster,
taskDefinition: fargateTaskDefinition,
desiredCount: 1,
});
}
}
python
from constructs import Construct
import aws_cdk.aws_applicationsignals_alpha as appsignals
import aws_cdk as cdk
import aws_cdk.aws_ec2 as ec2
import aws_cdk.aws_ecs as ecs
class MyStack(cdk.Stack):
def __init__(self, scope=None, id=None, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None, propertyInjectors=None):
super().__init__()
vpc = ec2.Vpc(self, "TestVpc")
cluster = ecs.Cluster(self, "TestCluster", vpc=vpc)
fargate_task_definition = ecs.FargateTaskDefinition(self, "SampleAppTaskDefinition",
cpu=2048,
memory_limit_mi_b=4096
)
fargate_task_definition.add_container("app",
image=ecs.ContainerImage.from_registry("test/sample-app")
)
appsignals.ApplicationSignalsIntegration(self, "ApplicationSignalsIntegration",
task_definition=fargate_task_definition,
instrumentation=appsignals.InstrumentationProps(
sdk_version=appsignals.JavaInstrumentationVersion.V2_10_0
),
service_name="sample-app",
cloud_watch_agent_sidecar=appsignals.CloudWatchAgentOptions(
container_name="cloudwatch-agent",
enable_logging=True,
cpu=256,
memory_limit_mi_b=512
)
)
ecs.FargateService(self, "MySampleApp",
cluster=cluster,
task_definition=fargate_task_definition,
desired_count=1
)
java
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();
Vpc vpc = Vpc.Builder.create(this, "TestVpc").build();
Cluster cluster = Cluster.Builder.create(this, "TestCluster").vpc(vpc).build();
FargateTaskDefinition fargateTaskDefinition = FargateTaskDefinition.Builder.create(this, "SampleAppTaskDefinition")
.cpu(2048)
.memoryLimitMiB(4096)
.build();
fargateTaskDefinition.addContainer("app", ContainerDefinitionOptions.builder()
.image(ContainerImage.fromRegistry("test/sample-app"))
.build());
ApplicationSignalsIntegration.Builder.create(this, "ApplicationSignalsIntegration")
.taskDefinition(fargateTaskDefinition)
.instrumentation(InstrumentationProps.builder()
.sdkVersion(JavaInstrumentationVersion.V2_10_0)
.build())
.serviceName("sample-app")
.cloudWatchAgentSidecar(CloudWatchAgentOptions.builder()
.containerName("cloudwatch-agent")
.enableLogging(true)
.cpu(256)
.memoryLimitMiB(512)
.build())
.build();
FargateService.Builder.create(this, "MySampleApp")
.cluster(cluster)
.taskDefinition(fargateTaskDefinition)
.desiredCount(1)
.build();
}
}
csharp
// Install: dotnet add package Amazon.CDK.AWS.ApplicationSignals.Alpha
using Constructs;
using Amazon.CDK.AWS.ApplicationSignals.Alpha;
using Amazon.CDK;
using Amazon.CDK.AWS.EC2;
using Amazon.CDK.AWS.ECS;
class MyStack : Stack
{
public MyStack(Construct? scope=null, string? id=null, StackProps props=new StackProps { }) : base()
{
var vpc = new Vpc(this, "TestVpc", new VpcProps { });
var cluster = new Cluster(this, "TestCluster", new ClusterProps { Vpc = vpc });
var fargateTaskDefinition = new FargateTaskDefinition(this, "SampleAppTaskDefinition", new FargateTaskDefinitionProps {
Cpu = 2048,
MemoryLimitMiB = 4096
});
fargateTaskDefinition.AddContainer("app", new ContainerDefinitionOptions {
Image = ContainerImage.FromRegistry("test/sample-app")
});
new ApplicationSignalsIntegration(this, "ApplicationSignalsIntegration", new ApplicationSignalsIntegrationProps {
TaskDefinition = fargateTaskDefinition,
Instrumentation = new InstrumentationProps {
SdkVersion = JavaInstrumentationVersion.V2_10_0
},
ServiceName = "sample-app",
CloudWatchAgentSidecar = new CloudWatchAgentOptions {
ContainerName = "cloudwatch-agent",
EnableLogging = true,
Cpu = 256,
MemoryLimitMiB = 512
}
});
new FargateService(this, "MySampleApp", new FargateServiceProps {
Cluster = cluster,
TaskDefinition = fargateTaskDefinition,
DesiredCount = 1
});
}
}
go
// Install: go get github.com/aws/aws-cdk-go/awscdkapplicationsignalsalpha/v2
import "github.com/aws/constructs-go/constructs"
import "github.com/aws/aws-cdk-go/awscdkapplicationsignalsalpha"
import cdk "github.com/aws/aws-cdk-go/awscdk"
import ec2 "github.com/aws/aws-cdk-go/awscdk"
import "github.com/aws/aws-cdk-go/awscdk"
type myStack struct {
Stack
}
func newMyStack(scope Construct, id *string, props StackProps) *myStack {
if props == nil {
props = &StackProps{
}
}
this := &myStack{}
cdk.NewStack_Override(this, )
vpc := ec2.NewVpc(this, jsii.String("TestVpc"), &VpcProps{
})
cluster := ecs.NewCluster(this, jsii.String("TestCluster"), &ClusterProps{
Vpc: Vpc,
})
fargateTaskDefinition := ecs.NewFargateTaskDefinition(this, jsii.String("SampleAppTaskDefinition"), &FargateTaskDefinitionProps{
Cpu: jsii.Number(2048),
MemoryLimitMiB: jsii.Number(4096),
})
fargateTaskDefinition.AddContainer(jsii.String("app"), &ContainerDefinitionOptions{
Image: ecs.ContainerImage_FromRegistry(jsii.String("test/sample-app")),
})
appsignals.NewApplicationSignalsIntegration(this, jsii.String("ApplicationSignalsIntegration"), &ApplicationSignalsIntegrationProps{
TaskDefinition: fargateTaskDefinition,
Instrumentation: &InstrumentationProps{
SdkVersion: appsignals.JavaInstrumentationVersion_V2_10_0(),
},
ServiceName: jsii.String("sample-app"),
CloudWatchAgentSidecar: &CloudWatchAgentOptions{
ContainerName: jsii.String("cloudwatch-agent"),
EnableLogging: jsii.Boolean(true),
Cpu: jsii.Number(256),
MemoryLimitMiB: jsii.Number(512),
},
})
ecs.NewFargateService(this, jsii.String("MySampleApp"), &FargateServiceProps{
Cluster: cluster,
TaskDefinition: fargateTaskDefinition,
DesiredCount: jsii.Number(1),
})
return this
}
Initializer
ts
new JavaInstrumentationVersion(imageRepo: string, version: string, memoryLimit: number)
python
JavaInstrumentationVersion(image_repo: str, version: str, memory_limit: int | float)
java
new JavaInstrumentationVersion(String imageRepo, String version, Number memoryLimit)
csharp
new JavaInstrumentationVersion(string imageRepo, string version, double memoryLimit)
go
NewJavaInstrumentationVersion(ImageRepo *string, Version *string, MemoryLimit *float64)
Properties
DEFAULT_MEMORY_LIMIT_MIBnumberdefault_memory_limit_mibint | floatDEFAULT_MEMORY_LIMIT_MIBNumberDEFAULT_MEMORY_LIMIT_MIBdoubleDEFAULT_MEMORY_LIMIT_MIB*float64requiredstatic#The default memory limit of the Java instrumentation.
The image repository for Java instrumentation.
V1_32_6JavaInstrumentationVersionv1_32_6JavaInstrumentationVersionV1_32_6JavaInstrumentationVersionV1_32_6JavaInstrumentationVersionV1_32_6JavaInstrumentationVersionrequiredstatic#ADOT Java Instrumentation version 1.32.6.
V1_33_0JavaInstrumentationVersionv1_33_0JavaInstrumentationVersionV1_33_0JavaInstrumentationVersionV1_33_0JavaInstrumentationVersionV1_33_0JavaInstrumentationVersionrequiredstatic#ADOT Java Instrumentation version 1.33.0.
V2_10_0JavaInstrumentationVersionv2_10_0JavaInstrumentationVersionV2_10_0JavaInstrumentationVersionV2_10_0JavaInstrumentationVersionV2_10_0JavaInstrumentationVersionrequiredstatic#ADOT Java Instrumentation version 2.10.0.
Methods
imageURI(): stringdef image_uri(self, ) -> strpublic String imageURI()public string ImageURI()func ImageURI() *string#Get the image URI for the instrumentation version.
returns
Returns: The image URI.
memoryLimitMiB(): numberdef memory_limit_mi_b(self, ) -> int | floatpublic Number memoryLimitMiB()public double MemoryLimitMiB()func MemoryLimitMiB() *float64#Get the memory limit in MiB for the instrumentation version.
returns
Returns: The memory limit