Skip to content
v2.273.0

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.
IMAGE_REPOstringimage_repostrIMAGE_REPOStringIMAGE_REPOstringIMAGE_REPO*stringrequiredstatic#
The image repository for Java instrumentation.
ADOT Java Instrumentation version 1.32.6.
ADOT Java Instrumentation version 1.33.0.
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