Show / Hide Table of Contents

Class InstrumentationVersion

(experimental) Base class for instrumentation versions.

Inheritance
object
InstrumentationVersion
DotnetInstrumentationVersion
JavaInstrumentationVersion
NodeInstrumentationVersion
PythonInstrumentationVersion
Namespace: Amazon.CDK.AWS.ApplicationSignals.Alpha
Assembly: Amazon.CDK.AWS.ApplicationSignals.Alpha.dll
Syntax (csharp)
public abstract class InstrumentationVersion : DeputyBase
Syntax (vb)
Public MustInherit Class InstrumentationVersion Inherits DeputyBase
Remarks

Provides functionality to generate image URIs for different instrumentation types.

Stability: Experimental

ExampleMetadata: infused

Examples
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(scope, id, props)
                 {

                     var vpc = new Vpc(this, "TestVpc", new VpcProps { });
                     var cluster = new Cluster(this, "TestCluster", new ClusterProps { Vpc = vpc });

                     // Define Task Definition for CloudWatch agent (Daemon)
                     var cwAgentTaskDefinition = new Ec2TaskDefinition(this, "CloudWatchAgentTaskDefinition", new Ec2TaskDefinitionProps {
                         NetworkMode = NetworkMode.HOST
                     });

                     new CloudWatchAgentIntegration(this, "CloudWatchAgentIntegration", new CloudWatchAgentIntegrationProps {
                         TaskDefinition = cwAgentTaskDefinition,
                         ContainerName = "ecs-cwagent",
                         EnableLogging = false,
                         Cpu = 128,
                         MemoryLimitMiB = 64,
                         PortMappings = new [] { new PortMapping {
                             ContainerPort = 4316,
                             HostPort = 4316
                         }, new PortMapping {
                             ContainerPort = 2000,
                             HostPort = 2000
                         } }
                     });

                     // Create the CloudWatch Agent daemon service
                     // Create the CloudWatch Agent daemon service
                     new Ec2Service(this, "CloudWatchAgentDaemon", new Ec2ServiceProps {
                         Cluster = cluster,
                         TaskDefinition = cwAgentTaskDefinition,
                         Daemon = true
                     });

                     // Define Task Definition for user application
                     var sampleAppTaskDefinition = new Ec2TaskDefinition(this, "SampleAppTaskDefinition", new Ec2TaskDefinitionProps {
                         NetworkMode = NetworkMode.HOST
                     });

                     sampleAppTaskDefinition.AddContainer("app", new ContainerDefinitionOptions {
                         Image = ContainerImage.FromRegistry("test/sample-app"),
                         Cpu = 0,
                         MemoryLimitMiB = 512
                     });

                     // 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
                     new ApplicationSignalsIntegration(this, "ApplicationSignalsIntegration", new ApplicationSignalsIntegrationProps {
                         TaskDefinition = sampleAppTaskDefinition,
                         Instrumentation = new InstrumentationProps {
                             SdkVersion = PythonInstrumentationVersion.V0_8_0
                         },
                         ServiceName = "sample-app"
                     });

                     new Ec2Service(this, "MySampleApp", new Ec2ServiceProps {
                         Cluster = cluster,
                         TaskDefinition = sampleAppTaskDefinition,
                         DesiredCount = 1
                     });
                 }
             }

Synopsis

Constructors

InstrumentationVersion(string, string, double)

(experimental) Base class for instrumentation versions.

Properties

ImageRepo

(experimental) Base class for instrumentation versions.

MemoryLimit

(experimental) Base class for instrumentation versions.

Version

(experimental) Base class for instrumentation versions.

Methods

ImageURI()

(experimental) Get the image URI for the instrumentation version.

MemoryLimitMiB()

(experimental) Get the memory limit in MiB for the instrumentation version.

Constructors

InstrumentationVersion(string, string, double)

(experimental) Base class for instrumentation versions.

protected InstrumentationVersion(string imageRepo, string version, double memoryLimit)
Parameters
imageRepo string
version string
memoryLimit double
Remarks

Stability: Experimental

Properties

ImageRepo

(experimental) Base class for instrumentation versions.

protected virtual string ImageRepo { get; }
Property Value

string

Remarks

Stability: Experimental

MemoryLimit

(experimental) Base class for instrumentation versions.

protected virtual double MemoryLimit { get; }
Property Value

double

Remarks

Stability: Experimental

Version

(experimental) Base class for instrumentation versions.

protected virtual string Version { get; }
Property Value

string

Remarks

Stability: Experimental

Methods

ImageURI()

(experimental) Get the image URI for the instrumentation version.

public virtual string ImageURI()
Returns

string

The image URI.

Remarks

Stability: Experimental

MemoryLimitMiB()

(experimental) Get the memory limit in MiB for the instrumentation version.

public virtual double MemoryLimitMiB()
Returns

double

The memory limit

Remarks

Stability: Experimental

Back to top Generated by DocFX