Documentation
¶
Overview ¶
CDK Construct Library to automatically instrument Python and Node Lambda functions with Datadog using AWS CDK v2
Index ¶
- func DatadogECSFargateTaskDefinition_FromFargateTaskDefinitionArn(scope constructs.Construct, id *string, fargateTaskDefinitionArn *string) awsecs.IFargateTaskDefinition
- func DatadogECSFargateTaskDefinition_FromFargateTaskDefinitionAttributes(scope constructs.Construct, id *string, ...) awsecs.IFargateTaskDefinition
- func DatadogECSFargateTaskDefinition_FromTaskDefinitionArn(scope constructs.Construct, id *string, taskDefinitionArn *string) awsecs.ITaskDefinition
- func DatadogECSFargateTaskDefinition_FromTaskDefinitionAttributes(scope constructs.Construct, id *string, attrs *awsecs.TaskDefinitionAttributes) awsecs.ITaskDefinition
- func DatadogECSFargateTaskDefinition_IsConstruct(x interface{}) *bool
- func DatadogECSFargateTaskDefinition_IsOwnedResource(construct constructs.IConstruct) *bool
- func DatadogECSFargateTaskDefinition_IsResource(construct constructs.IConstruct) *bool
- func DatadogLambda_IsConstruct(x interface{}) *bool
- func DatadogStepFunctions_BuildLambdaPayloadToMergeTraces(payload *map[string]interface{}) *map[string]interface{}
- func DatadogStepFunctions_BuildStepFunctionTaskInputToMergeTraces(input *map[string]interface{}) *map[string]interface{}
- func DatadogStepFunctions_IsConstruct(x interface{}) *bool
- func NewDatadogECSFargateTaskDefinition_Override(d DatadogECSFargateTaskDefinition, scope constructs.Construct, id *string, ...)
- func NewDatadogECSFargate_Override(d DatadogECSFargate, datadogProps *DatadogECSFargateProps)
- func NewDatadogLambda_Override(d DatadogLambda, scope constructs.Construct, id *string, ...)
- func NewDatadogStepFunctions_Override(d DatadogStepFunctions, scope constructs.Construct, id *string, ...)
- func NewTransport_Override(t Transport, flushMetricsToLogs *bool, site *string, apiKey *string, ...)
- type APMFeatureConfig
- type CWSFeatureConfig
- type Cardinality
- type DatadogECSBaseProps
- type DatadogECSFargate
- type DatadogECSFargateProps
- type DatadogECSFargateTaskDefinition
- type DatadogECSLogDriverProps
- type DatadogFirelensOptions
- type DatadogLambda
- type DatadogLambdaProps
- type DatadogLambdaStrictProps
- type DatadogStepFunctions
- type DatadogStepFunctionsProps
- type DogstatsdFeatureConfig
- type FargateCWSFeatureConfig
- type FargateLogCollectionFeatureConfig
- type FluentbitConfig
- type LogCollectionFeatureConfig
- type LoggingType
- type Node
- type Runtime
- type RuntimeType
- type TagKeys
- type Transport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DatadogECSFargateTaskDefinition_FromFargateTaskDefinitionArn ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_FromFargateTaskDefinitionArn(scope constructs.Construct, id *string, fargateTaskDefinitionArn *string) awsecs.IFargateTaskDefinition
Imports a task definition from the specified task definition ARN.
func DatadogECSFargateTaskDefinition_FromFargateTaskDefinitionAttributes ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_FromFargateTaskDefinitionAttributes(scope constructs.Construct, id *string, attrs *awsecs.FargateTaskDefinitionAttributes) awsecs.IFargateTaskDefinition
Import an existing Fargate task definition from its attributes.
func DatadogECSFargateTaskDefinition_FromTaskDefinitionArn ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_FromTaskDefinitionArn(scope constructs.Construct, id *string, taskDefinitionArn *string) awsecs.ITaskDefinition
Imports a task definition from the specified task definition ARN.
The task will have a compatibility of EC2+Fargate.
func DatadogECSFargateTaskDefinition_FromTaskDefinitionAttributes ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_FromTaskDefinitionAttributes(scope constructs.Construct, id *string, attrs *awsecs.TaskDefinitionAttributes) awsecs.ITaskDefinition
Create a task definition from a task definition reference.
func DatadogECSFargateTaskDefinition_IsConstruct ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.
func DatadogECSFargateTaskDefinition_IsOwnedResource ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func DatadogECSFargateTaskDefinition_IsResource ¶ added in v2.3.0
func DatadogECSFargateTaskDefinition_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func DatadogLambda_IsConstruct ¶
func DatadogLambda_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.
func DatadogStepFunctions_IsConstruct ¶
func DatadogStepFunctions_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead.
func NewDatadogECSFargateTaskDefinition_Override ¶ added in v2.3.0
func NewDatadogECSFargateTaskDefinition_Override(d DatadogECSFargateTaskDefinition, scope constructs.Construct, id *string, props *awsecs.FargateTaskDefinitionProps, datadogProps *DatadogECSFargateProps)
func NewDatadogECSFargate_Override ¶ added in v2.3.0
func NewDatadogECSFargate_Override(d DatadogECSFargate, datadogProps *DatadogECSFargateProps)
func NewDatadogLambda_Override ¶
func NewDatadogLambda_Override(d DatadogLambda, scope constructs.Construct, id *string, props *DatadogLambdaProps)
func NewDatadogStepFunctions_Override ¶
func NewDatadogStepFunctions_Override(d DatadogStepFunctions, scope constructs.Construct, id *string, props *DatadogStepFunctionsProps)
Types ¶
type APMFeatureConfig ¶ added in v2.3.0
type APMFeatureConfig struct {
// Enables APM.
IsEnabled *bool `field:"optional" json:"isEnabled" yaml:"isEnabled"`
// Enables Profile collection.
//
// Requires Datadog APM SSI instrumentation on your application containers.
IsProfilingEnabled *bool `field:"optional" json:"isProfilingEnabled" yaml:"isProfilingEnabled"`
// Enables APM traces traffic over Unix Domain Socket.
//
// Falls back to TCP configuration for application containers when disabled.
IsSocketEnabled *bool `field:"optional" json:"isSocketEnabled" yaml:"isSocketEnabled"`
// Enables inferred spans for proxy services like AWS API Gateway.
//
// When enabled, the tracer will create spans for proxy services by using headers
// passed from the proxy service to the application.
TraceInferredProxyServices *bool `field:"optional" json:"traceInferredProxyServices" yaml:"traceInferredProxyServices"`
}
APM feature configuration.
type CWSFeatureConfig ¶ added in v2.3.0
type CWSFeatureConfig struct {
// Enables CWS.
IsEnabled *bool `field:"optional" json:"isEnabled" yaml:"isEnabled"`
}
CWS feature configuration.
type Cardinality ¶ added in v2.3.0
type Cardinality string
Cardinality of metrics.
const ( Cardinality_LOW Cardinality = "LOW" Cardinality_ORCHESTRATOR Cardinality = "ORCHESTRATOR" Cardinality_HIGH Cardinality = "HIGH" )
type DatadogECSBaseProps ¶ added in v2.3.0
type DatadogECSBaseProps struct {
// The Datadog API key string.
//
// Must define at least 1 source for the API key.
ApiKey *string `field:"optional" json:"apiKey" yaml:"apiKey"`
// The Datadog API key secret.
//
// Must define at least 1 source for the API key.
ApiKeySecret awssecretsmanager.ISecret `field:"optional" json:"apiKeySecret" yaml:"apiKeySecret"`
// The ARN of the Datadog API key secret.
//
// Must define at least 1 source for the API key.
ApiKeySecretArn *string `field:"optional" json:"apiKeySecretArn" yaml:"apiKeySecretArn"`
// APM feature configuration.
Apm *APMFeatureConfig `field:"optional" json:"apm" yaml:"apm"`
// The Datadog Agent checks tag cardinality.
ChecksCardinality Cardinality `field:"optional" json:"checksCardinality" yaml:"checksCardinality"`
// The cluster name to use for tagging.
ClusterName *string `field:"optional" json:"clusterName" yaml:"clusterName"`
// The minimum number of CPU units to reserve for the Datadog Agent container.
Cpu *float64 `field:"optional" json:"cpu" yaml:"cpu"`
// Configure health check for the Datadog Agent container.
DatadogHealthCheck *awsecs.HealthCheck `field:"optional" json:"datadogHealthCheck" yaml:"datadogHealthCheck"`
// DogStatsD feature configuration.
Dogstatsd *DogstatsdFeatureConfig `field:"optional" json:"dogstatsd" yaml:"dogstatsd"`
// The task environment name.
//
// Used for tagging (UST).
Env *string `field:"optional" json:"env" yaml:"env"`
// Datadog Agent environment variables.
EnvironmentVariables *map[string]*string `field:"optional" json:"environmentVariables" yaml:"environmentVariables"`
// Global tags to apply to all data sent by the Agent.
//
// Overrides any DD_TAGS values in environmentVariables.
GlobalTags *string `field:"optional" json:"globalTags" yaml:"globalTags"`
// The version of the Datadog Agent container image to use.
ImageVersion *string `field:"optional" json:"imageVersion" yaml:"imageVersion"`
// Configure added containers to have container dependency on the Datadog Agent container.
IsDatadogDependencyEnabled *bool `field:"optional" json:"isDatadogDependencyEnabled" yaml:"isDatadogDependencyEnabled"`
// Configure Datadog Agent container to be essential for the task.
IsDatadogEssential *bool `field:"optional" json:"isDatadogEssential" yaml:"isDatadogEssential"`
// The amount (in MiB) of memory to present to the Datadog Agent container.
MemoryLimitMiB *float64 `field:"optional" json:"memoryLimitMiB" yaml:"memoryLimitMiB"`
// The registry to pull the Datadog Agent container image from.
Registry *string `field:"optional" json:"registry" yaml:"registry"`
// The task service name.
//
// Used for tagging (UST).
Service *string `field:"optional" json:"service" yaml:"service"`
// The Datadog site to send data to.
Site *string `field:"optional" json:"site" yaml:"site"`
// The task version.
//
// Used for tagging (UST).
Version *string `field:"optional" json:"version" yaml:"version"`
}
type DatadogECSFargate ¶ added in v2.3.0
type DatadogECSFargate interface {
// Creates a new Fargate Task Definition instrumented with Datadog.
//
// Merges the provided task's datadogProps with the class's datadogProps.
FargateTaskDefinition(scope constructs.Construct, id *string, props *awsecs.FargateTaskDefinitionProps, datadogProps *DatadogECSFargateProps) DatadogECSFargateTaskDefinition
}
The Datadog ECS Fargate construct manages the Datadog configuration for ECS Fargate tasks.
func NewDatadogECSFargate ¶ added in v2.3.0
func NewDatadogECSFargate(datadogProps *DatadogECSFargateProps) DatadogECSFargate
type DatadogECSFargateProps ¶ added in v2.3.0
type DatadogECSFargateProps struct {
// The Datadog API key string.
//
// Must define at least 1 source for the API key.
ApiKey *string `field:"optional" json:"apiKey" yaml:"apiKey"`
// The Datadog API key secret.
//
// Must define at least 1 source for the API key.
ApiKeySecret awssecretsmanager.ISecret `field:"optional" json:"apiKeySecret" yaml:"apiKeySecret"`
// The ARN of the Datadog API key secret.
//
// Must define at least 1 source for the API key.
ApiKeySecretArn *string `field:"optional" json:"apiKeySecretArn" yaml:"apiKeySecretArn"`
// APM feature configuration.
Apm *APMFeatureConfig `field:"optional" json:"apm" yaml:"apm"`
// The Datadog Agent checks tag cardinality.
ChecksCardinality Cardinality `field:"optional" json:"checksCardinality" yaml:"checksCardinality"`
// The cluster name to use for tagging.
ClusterName *string `field:"optional" json:"clusterName" yaml:"clusterName"`
// The minimum number of CPU units to reserve for the Datadog Agent container.
Cpu *float64 `field:"optional" json:"cpu" yaml:"cpu"`
// Configure health check for the Datadog Agent container.
DatadogHealthCheck *awsecs.HealthCheck `field:"optional" json:"datadogHealthCheck" yaml:"datadogHealthCheck"`
// DogStatsD feature configuration.
Dogstatsd *DogstatsdFeatureConfig `field:"optional" json:"dogstatsd" yaml:"dogstatsd"`
// The task environment name.
//
// Used for tagging (UST).
Env *string `field:"optional" json:"env" yaml:"env"`
// Datadog Agent environment variables.
EnvironmentVariables *map[string]*string `field:"optional" json:"environmentVariables" yaml:"environmentVariables"`
// Global tags to apply to all data sent by the Agent.
//
// Overrides any DD_TAGS values in environmentVariables.
GlobalTags *string `field:"optional" json:"globalTags" yaml:"globalTags"`
// The version of the Datadog Agent container image to use.
ImageVersion *string `field:"optional" json:"imageVersion" yaml:"imageVersion"`
// Configure added containers to have container dependency on the Datadog Agent container.
IsDatadogDependencyEnabled *bool `field:"optional" json:"isDatadogDependencyEnabled" yaml:"isDatadogDependencyEnabled"`
// Configure Datadog Agent container to be essential for the task.
IsDatadogEssential *bool `field:"optional" json:"isDatadogEssential" yaml:"isDatadogEssential"`
// The amount (in MiB) of memory to present to the Datadog Agent container.
MemoryLimitMiB *float64 `field:"optional" json:"memoryLimitMiB" yaml:"memoryLimitMiB"`
// The registry to pull the Datadog Agent container image from.
Registry *string `field:"optional" json:"registry" yaml:"registry"`
// The task service name.
//
// Used for tagging (UST).
Service *string `field:"optional" json:"service" yaml:"service"`
// The Datadog site to send data to.
Site *string `field:"optional" json:"site" yaml:"site"`
// The task version.
//
// Used for tagging (UST).
Version *string `field:"optional" json:"version" yaml:"version"`
Cws *FargateCWSFeatureConfig `field:"optional" json:"cws" yaml:"cws"`
LogCollection *FargateLogCollectionFeatureConfig `field:"optional" json:"logCollection" yaml:"logCollection"`
}
type DatadogECSFargateTaskDefinition ¶ added in v2.3.0
type DatadogECSFargateTaskDefinition interface {
awsecs.FargateTaskDefinition
// The task launch type compatibility requirement.
Compatibility() awsecs.Compatibility
// The container definitions.
Containers() *[]awsecs.ContainerDefinition
CwsContainer() awsecs.ContainerDefinition
DatadogContainer() awsecs.ContainerDefinition
// Default container for this task.
//
// Load balancers will send traffic to this container. The first
// essential container that is added to this task will become the default
// container.
DefaultContainer() awsecs.ContainerDefinition
SetDefaultContainer(val awsecs.ContainerDefinition)
// 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.
Env() *awscdk.ResourceEnvironment
// The amount (in GiB) of ephemeral storage to be allocated to the task.
EphemeralStorageGiB() *float64
// Execution role for this task definition.
ExecutionRole() awsiam.IRole
// The name of a family that this task definition is registered to.
//
// A family groups multiple versions of a task definition.
Family() *string
// Public getter method to access list of inference accelerators attached to the instance.
InferenceAccelerators() *[]*awsecs.InferenceAccelerator
// Return true if the task definition can be run on an EC2 cluster.
IsEc2Compatible() *bool
// Return true if the task definition can be run on a ECS anywhere cluster.
IsExternalCompatible() *bool
// Return true if the task definition can be run on a Fargate cluster.
IsFargateCompatible() *bool
LogContainer() awsecs.ContainerDefinition
// The Docker networking mode to use for the containers in the task.
//
// Fargate tasks require the awsvpc network mode.
NetworkMode() awsecs.NetworkMode
// The tree node.
Node() constructs.Node
// Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.
//
// This value will resolve to one of the following:
// - a concrete value (e.g. `"my-awesome-bucket"`)
// - `undefined`, when a name should be generated by CloudFormation
// - a concrete name generated automatically during synthesis, in
// cross-environment scenarios.
PhysicalName() *string
// The process namespace to use for the containers in the task.
//
// Only supported for tasks that are hosted on AWS Fargate if the tasks
// are using platform version 1.4.0 or later (Linux). Not supported in
// Windows containers. If pidMode is specified for a Fargate task,
// then runtimePlatform.operatingSystemFamily must also be specified. For more
// information, see [Task Definition Parameters](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_definition_pidmode).
PidMode() awsecs.PidMode
// Whether this task definition has at least a container that references a specific JSON field of a secret stored in Secrets Manager.
ReferencesSecretJsonField() *bool
// The stack in which this resource is defined.
Stack() awscdk.Stack
// The full Amazon Resource Name (ARN) of the task definition.
TaskDefinitionArn() *string
// The name of the IAM role that grants containers in the task permission to call AWS APIs on your behalf.
TaskRole() awsiam.IRole
// Adds a new container to the task definition.
//
// Modifies properties of container to support specified agent configuration in task.
AddContainer(id *string, containerProps *awsecs.ContainerDefinitionOptions) awsecs.ContainerDefinition
// Adds the specified extension to the task definition.
//
// Extension can be used to apply a packaged modification to
// a task definition.
AddExtension(extension awsecs.ITaskDefinitionExtension)
// Adds a firelens log router to the task definition.
AddFirelensLogRouter(id *string, props *awsecs.FirelensLogRouterDefinitionOptions) awsecs.FirelensLogRouter
// Adds an inference accelerator to the task definition.
AddInferenceAccelerator(inferenceAccelerator *awsecs.InferenceAccelerator)
// Adds the specified placement constraint to the task definition.
AddPlacementConstraint(constraint awsecs.PlacementConstraint)
// Adds a policy statement to the task execution IAM role.
AddToExecutionRolePolicy(statement awsiam.PolicyStatement)
// Adds a policy statement to the task IAM role.
AddToTaskRolePolicy(statement awsiam.PolicyStatement)
// Adds a volume to the task definition.
AddVolume(volume *awsecs.Volume)
// 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`).
ApplyRemovalPolicy(policy awscdk.RemovalPolicy)
// Returns the container that match the provided containerName.
FindContainer(containerName *string) awsecs.ContainerDefinition
// Determine the existing port mapping for the provided name.
//
// Returns: PortMapping for the provided name, if it exists.
FindPortMappingByName(name *string) *awsecs.PortMapping
GeneratePhysicalName() *string
// Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`).
//
// Normally, this token will resolve to `arnAttr`, but if the resource is
// referenced across environments, `arnComponents` will be used to synthesize
// a concrete ARN with the resource's physical name. Make sure to reference
// `this.physicalName` in `arnComponents`.
GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string
// Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`).
//
// Normally, this token will resolve to `nameAttr`, but if the resource is
// referenced across environments, it will be resolved to `this.physicalName`,
// which will be a concrete name.
GetResourceNameAttribute(nameAttr *string) *string
// Grants permissions to run this task definition.
//
// This will grant the following permissions:
//
// - ecs:RunTask
// - iam:PassRole.
GrantRun(grantee awsiam.IGrantable) awsiam.Grant
// Creates the task execution IAM role if it doesn't already exist.
ObtainExecutionRole() awsiam.IRole
// Returns a string representation of this construct.
ToString() *string
}
The Datadog ECS Fargate Task Definition automatically instruments the ECS Fargate task and containers with configured Datadog features.
func NewDatadogECSFargateTaskDefinition ¶ added in v2.3.0
func NewDatadogECSFargateTaskDefinition(scope constructs.Construct, id *string, props *awsecs.FargateTaskDefinitionProps, datadogProps *DatadogECSFargateProps) DatadogECSFargateTaskDefinition
type DatadogECSLogDriverProps ¶ added in v2.3.0
type DatadogECSLogDriverProps struct {
Compress *string `field:"optional" json:"compress" yaml:"compress"`
HostEndpoint *string `field:"optional" json:"hostEndpoint" yaml:"hostEndpoint"`
MessageKey *string `field:"optional" json:"messageKey" yaml:"messageKey"`
ServiceName *string `field:"optional" json:"serviceName" yaml:"serviceName"`
SourceName *string `field:"optional" json:"sourceName" yaml:"sourceName"`
Tls *string `field:"optional" json:"tls" yaml:"tls"`
}
Datadog Fluentbit log driver configuration.
type DatadogFirelensOptions ¶ added in v2.5.0
type DatadogFirelensOptions struct {
// Custom configuration file, s3 or file.
//
// Both configFileType and configFileValue must be used together
// to define a custom configuration source.
// Default: - determined by checking configFileValue with S3 ARN.
//
ConfigFileType awsecs.FirelensConfigFileType `field:"optional" json:"configFileType" yaml:"configFileType"`
// Custom configuration file, S3 ARN or a file path Both configFileType and configFileValue must be used together to define a custom configuration source.
// Default: - no config file value.
//
ConfigFileValue *string `field:"optional" json:"configFileValue" yaml:"configFileValue"`
// By default, Amazon ECS adds additional fields in your log entries that help identify the source of the logs.
//
// You can disable this action by setting enable-ecs-log-metadata to false.
// Default: - true.
//
EnableECSLogMetadata *bool `field:"optional" json:"enableECSLogMetadata" yaml:"enableECSLogMetadata"`
// Overrides the config file type and value to support JSON parsing.
IsParseJson *bool `field:"optional" json:"isParseJson" yaml:"isParseJson"`
}
type DatadogLambda ¶
type DatadogLambda interface {
constructs.Construct
ContextGitShaOverrideKey() *string
SetContextGitShaOverrideKey(val *string)
GitCommitShaOverride() *string
SetGitCommitShaOverride(val *string)
GitRepoUrlOverride() *string
SetGitRepoUrlOverride(val *string)
Lambdas() *[]interface{}
SetLambdas(val *[]interface{})
// The tree node.
Node() constructs.Node
Props() *DatadogLambdaProps
SetProps(val *DatadogLambdaProps)
Scope() constructs.Construct
SetScope(val constructs.Construct)
Transport() Transport
SetTransport(val Transport)
AddForwarderToNonLambdaLogGroups(logGroups *[]awslogs.ILogGroup)
AddGitCommitMetadata(lambdaFunctions *[]interface{}, gitCommitSha *string, gitRepoUrl *string)
AddLambdaFunctions(lambdaFunctions *[]interface{}, construct constructs.Construct)
OverrideGitMetadata(gitCommitSha *string, gitRepoUrl *string)
// Returns a string representation of this construct.
ToString() *string
}
func NewDatadogLambda ¶
func NewDatadogLambda(scope constructs.Construct, id *string, props *DatadogLambdaProps) DatadogLambda
type DatadogLambdaProps ¶
type DatadogLambdaProps struct {
AddLayers *bool `field:"optional" json:"addLayers" yaml:"addLayers"`
ApiKey *string `field:"optional" json:"apiKey" yaml:"apiKey"`
ApiKeySecret awssecretsmanager.ISecret `field:"optional" json:"apiKeySecret" yaml:"apiKeySecret"`
ApiKeySecretArn *string `field:"optional" json:"apiKeySecretArn" yaml:"apiKeySecretArn"`
ApiKmsKey *string `field:"optional" json:"apiKmsKey" yaml:"apiKmsKey"`
ApmFlushDeadline interface{} `field:"optional" json:"apmFlushDeadline" yaml:"apmFlushDeadline"`
CaptureCloudServicePayload *bool `field:"optional" json:"captureCloudServicePayload" yaml:"captureCloudServicePayload"`
CaptureLambdaPayload *bool `field:"optional" json:"captureLambdaPayload" yaml:"captureLambdaPayload"`
ColdStartTraceSkipLibs *string `field:"optional" json:"coldStartTraceSkipLibs" yaml:"coldStartTraceSkipLibs"`
CreateForwarderPermissions *bool `field:"optional" json:"createForwarderPermissions" yaml:"createForwarderPermissions"`
DecodeAuthorizerContext *bool `field:"optional" json:"decodeAuthorizerContext" yaml:"decodeAuthorizerContext"`
DotnetLayerArn *string `field:"optional" json:"dotnetLayerArn" yaml:"dotnetLayerArn"`
DotnetLayerVersion *float64 `field:"optional" json:"dotnetLayerVersion" yaml:"dotnetLayerVersion"`
EnableColdStartTracing *bool `field:"optional" json:"enableColdStartTracing" yaml:"enableColdStartTracing"`
EnableDatadogASM *bool `field:"optional" json:"enableDatadogASM" yaml:"enableDatadogASM"`
EnableDatadogLogs *bool `field:"optional" json:"enableDatadogLogs" yaml:"enableDatadogLogs"`
EnableDatadogTracing *bool `field:"optional" json:"enableDatadogTracing" yaml:"enableDatadogTracing"`
EnableMergeXrayTraces *bool `field:"optional" json:"enableMergeXrayTraces" yaml:"enableMergeXrayTraces"`
EnableProfiling *bool `field:"optional" json:"enableProfiling" yaml:"enableProfiling"`
EncodeAuthorizerContext *bool `field:"optional" json:"encodeAuthorizerContext" yaml:"encodeAuthorizerContext"`
Env *string `field:"optional" json:"env" yaml:"env"`
ExtensionLayerArn *string `field:"optional" json:"extensionLayerArn" yaml:"extensionLayerArn"`
ExtensionLayerVersion *float64 `field:"optional" json:"extensionLayerVersion" yaml:"extensionLayerVersion"`
FlushMetricsToLogs *bool `field:"optional" json:"flushMetricsToLogs" yaml:"flushMetricsToLogs"`
ForwarderArn *string `field:"optional" json:"forwarderArn" yaml:"forwarderArn"`
GrantSecretReadAccess *bool `field:"optional" json:"grantSecretReadAccess" yaml:"grantSecretReadAccess"`
InjectLogContext *bool `field:"optional" json:"injectLogContext" yaml:"injectLogContext"`
JavaLayerArn *string `field:"optional" json:"javaLayerArn" yaml:"javaLayerArn"`
JavaLayerVersion *float64 `field:"optional" json:"javaLayerVersion" yaml:"javaLayerVersion"`
LlmObsAgentlessEnabled *bool `field:"optional" json:"llmObsAgentlessEnabled" yaml:"llmObsAgentlessEnabled"`
LlmObsEnabled *bool `field:"optional" json:"llmObsEnabled" yaml:"llmObsEnabled"`
LlmObsMlApp *string `field:"optional" json:"llmObsMlApp" yaml:"llmObsMlApp"`
LogLevel *string `field:"optional" json:"logLevel" yaml:"logLevel"`
MinColdStartTraceDuration *float64 `field:"optional" json:"minColdStartTraceDuration" yaml:"minColdStartTraceDuration"`
NodeLayerArn *string `field:"optional" json:"nodeLayerArn" yaml:"nodeLayerArn"`
NodeLayerVersion *float64 `field:"optional" json:"nodeLayerVersion" yaml:"nodeLayerVersion"`
PythonLayerArn *string `field:"optional" json:"pythonLayerArn" yaml:"pythonLayerArn"`
PythonLayerVersion *float64 `field:"optional" json:"pythonLayerVersion" yaml:"pythonLayerVersion"`
RedirectHandler *bool `field:"optional" json:"redirectHandler" yaml:"redirectHandler"`
RubyLayerArn *string `field:"optional" json:"rubyLayerArn" yaml:"rubyLayerArn"`
RubyLayerVersion *float64 `field:"optional" json:"rubyLayerVersion" yaml:"rubyLayerVersion"`
Service *string `field:"optional" json:"service" yaml:"service"`
Site *string `field:"optional" json:"site" yaml:"site"`
SourceCodeIntegration *bool `field:"optional" json:"sourceCodeIntegration" yaml:"sourceCodeIntegration"`
Tags *string `field:"optional" json:"tags" yaml:"tags"`
UseLayersFromAccount *string `field:"optional" json:"useLayersFromAccount" yaml:"useLayersFromAccount"`
Version *string `field:"optional" json:"version" yaml:"version"`
}
type DatadogLambdaStrictProps ¶
type DatadogLambdaStrictProps struct {
AddLayers *bool `field:"required" json:"addLayers" yaml:"addLayers"`
CaptureCloudServicePayload *bool `field:"required" json:"captureCloudServicePayload" yaml:"captureCloudServicePayload"`
CaptureLambdaPayload *bool `field:"required" json:"captureLambdaPayload" yaml:"captureLambdaPayload"`
EnableDatadogASM *bool `field:"required" json:"enableDatadogASM" yaml:"enableDatadogASM"`
EnableDatadogLogs *bool `field:"required" json:"enableDatadogLogs" yaml:"enableDatadogLogs"`
EnableDatadogTracing *bool `field:"required" json:"enableDatadogTracing" yaml:"enableDatadogTracing"`
EnableMergeXrayTraces *bool `field:"required" json:"enableMergeXrayTraces" yaml:"enableMergeXrayTraces"`
GrantSecretReadAccess *bool `field:"required" json:"grantSecretReadAccess" yaml:"grantSecretReadAccess"`
InjectLogContext *bool `field:"required" json:"injectLogContext" yaml:"injectLogContext"`
ApiKey *string `field:"optional" json:"apiKey" yaml:"apiKey"`
ApiKeySecret awssecretsmanager.ISecret `field:"optional" json:"apiKeySecret" yaml:"apiKeySecret"`
ApiKeySecretArn *string `field:"optional" json:"apiKeySecretArn" yaml:"apiKeySecretArn"`
ApiKmsKey *string `field:"optional" json:"apiKmsKey" yaml:"apiKmsKey"`
ExtensionLayerArn *string `field:"optional" json:"extensionLayerArn" yaml:"extensionLayerArn"`
ExtensionLayerVersion *float64 `field:"optional" json:"extensionLayerVersion" yaml:"extensionLayerVersion"`
FlushMetricsToLogs *bool `field:"optional" json:"flushMetricsToLogs" yaml:"flushMetricsToLogs"`
ForwarderArn *string `field:"optional" json:"forwarderArn" yaml:"forwarderArn"`
JavaLayerArn *string `field:"optional" json:"javaLayerArn" yaml:"javaLayerArn"`
JavaLayerVersion *float64 `field:"optional" json:"javaLayerVersion" yaml:"javaLayerVersion"`
LogLevel *string `field:"optional" json:"logLevel" yaml:"logLevel"`
NodeLayerArn *string `field:"optional" json:"nodeLayerArn" yaml:"nodeLayerArn"`
NodeLayerVersion *float64 `field:"optional" json:"nodeLayerVersion" yaml:"nodeLayerVersion"`
PythonLayerArn *string `field:"optional" json:"pythonLayerArn" yaml:"pythonLayerArn"`
PythonLayerVersion *float64 `field:"optional" json:"pythonLayerVersion" yaml:"pythonLayerVersion"`
RedirectHandler *bool `field:"optional" json:"redirectHandler" yaml:"redirectHandler"`
Site *string `field:"optional" json:"site" yaml:"site"`
SourceCodeIntegration *bool `field:"optional" json:"sourceCodeIntegration" yaml:"sourceCodeIntegration"`
}
type DatadogStepFunctions ¶
type DatadogStepFunctions interface {
constructs.Construct
// The tree node.
Node() constructs.Node
Props() *DatadogStepFunctionsProps
SetProps(val *DatadogStepFunctionsProps)
Scope() constructs.Construct
SetScope(val constructs.Construct)
Stack() awscdk.Stack
SetStack(val awscdk.Stack)
AddStateMachines(stateMachines *[]awsstepfunctions.StateMachine, construct constructs.Construct)
// Returns a string representation of this construct.
ToString() *string
}
func NewDatadogStepFunctions ¶
func NewDatadogStepFunctions(scope constructs.Construct, id *string, props *DatadogStepFunctionsProps) DatadogStepFunctions
type DatadogStepFunctionsProps ¶
type DatadogStepFunctionsProps struct {
Env *string `field:"optional" json:"env" yaml:"env"`
ForwarderArn *string `field:"optional" json:"forwarderArn" yaml:"forwarderArn"`
Service *string `field:"optional" json:"service" yaml:"service"`
Tags *string `field:"optional" json:"tags" yaml:"tags"`
Version *string `field:"optional" json:"version" yaml:"version"`
}
type DogstatsdFeatureConfig ¶ added in v2.3.0
type DogstatsdFeatureConfig struct {
// Controls the cardinality of custom dogstatsd metrics.
DogstatsdCardinality Cardinality `field:"optional" json:"dogstatsdCardinality" yaml:"dogstatsdCardinality"`
// Enables Dogstatsd.
IsEnabled *bool `field:"optional" json:"isEnabled" yaml:"isEnabled"`
// Enables Dogstatsd origin detection.
IsOriginDetectionEnabled *bool `field:"optional" json:"isOriginDetectionEnabled" yaml:"isOriginDetectionEnabled"`
// Enables Dogstatsd traffic over Unix Domain Socket.
//
// Falls back to UDP configuration for application containers when disabled.
IsSocketEnabled *bool `field:"optional" json:"isSocketEnabled" yaml:"isSocketEnabled"`
}
Dogstatsd feature configuration.
type FargateCWSFeatureConfig ¶ added in v2.3.0
type FargateCWSFeatureConfig struct {
// Enables CWS.
IsEnabled *bool `field:"optional" json:"isEnabled" yaml:"isEnabled"`
// The minimum number of CPU units to reserve for the Datadog CWS init container.
Cpu *float64 `field:"optional" json:"cpu" yaml:"cpu"`
// The amount (in MiB) of memory to present to the Datadog CWS init container.
MemoryLimitMiB *float64 `field:"optional" json:"memoryLimitMiB" yaml:"memoryLimitMiB"`
}
type FargateLogCollectionFeatureConfig ¶ added in v2.3.0
type FargateLogCollectionFeatureConfig struct {
// Enables log collection.
IsEnabled *bool `field:"optional" json:"isEnabled" yaml:"isEnabled"`
// Fluentbit log collection configuration.
FluentbitConfig *FluentbitConfig `field:"optional" json:"fluentbitConfig" yaml:"fluentbitConfig"`
// Type of log collection.
LoggingType LoggingType `field:"optional" json:"loggingType" yaml:"loggingType"`
}
type FluentbitConfig ¶ added in v2.3.0
type FluentbitConfig struct {
// The minimum number of CPU units to reserve for the Datadog fluent-bit container.
Cpu *float64 `field:"optional" json:"cpu" yaml:"cpu"`
// Firelens options for the Fluentbit container.
FirelensOptions *DatadogFirelensOptions `field:"optional" json:"firelensOptions" yaml:"firelensOptions"`
// The version of the Fluentbit container image to use.
ImageVersion *string `field:"optional" json:"imageVersion" yaml:"imageVersion"`
// Enables the log router health check.
IsLogRouterDependencyEnabled *bool `field:"optional" json:"isLogRouterDependencyEnabled" yaml:"isLogRouterDependencyEnabled"`
// Makes the log router essential.
IsLogRouterEssential *bool `field:"optional" json:"isLogRouterEssential" yaml:"isLogRouterEssential"`
// Configuration for the Datadog log driver.
LogDriverConfig *DatadogECSLogDriverProps `field:"optional" json:"logDriverConfig" yaml:"logDriverConfig"`
// Health check configuration for the log router.
LogRouterHealthCheck *awsecs.HealthCheck `field:"optional" json:"logRouterHealthCheck" yaml:"logRouterHealthCheck"`
// The amount (in MiB) of memory to present to the Datadog fluent-bit container.
MemoryLimitMiB *float64 `field:"optional" json:"memoryLimitMiB" yaml:"memoryLimitMiB"`
// The registry to pull the Fluentbit container image from.
Registry *string `field:"optional" json:"registry" yaml:"registry"`
}
type LogCollectionFeatureConfig ¶ added in v2.3.0
type LogCollectionFeatureConfig struct {
// Enables log collection.
IsEnabled *bool `field:"optional" json:"isEnabled" yaml:"isEnabled"`
}
Log collection feature configuration.
type LoggingType ¶ added in v2.3.0
type LoggingType string
Type of datadog logging configuration.
const ( // Forwarding logs to Datadog using Fluentbit container. // // Only compatible on Linux. LoggingType_FLUENTBIT LoggingType = "FLUENTBIT" )
type Node ¶
type Node struct {
DefaultChild interface{} `field:"required" json:"defaultChild" yaml:"defaultChild"`
}
type RuntimeType ¶
type RuntimeType string
const ( RuntimeType_DOTNET RuntimeType = "DOTNET" RuntimeType_NODE RuntimeType = "NODE" RuntimeType_PYTHON RuntimeType = "PYTHON" RuntimeType_JAVA RuntimeType = "JAVA" RuntimeType_RUBY RuntimeType = "RUBY" RuntimeType_CUSTOM RuntimeType = "CUSTOM" RuntimeType_UNSUPPORTED RuntimeType = "UNSUPPORTED" )
type Transport ¶
type Transport interface {
ApiKey() *string
SetApiKey(val *string)
ApiKeySecretArn() *string
SetApiKeySecretArn(val *string)
ApiKmsKey() *string
SetApiKmsKey(val *string)
ExtensionLayerArn() *string
SetExtensionLayerArn(val *string)
ExtensionLayerVersion() *float64
SetExtensionLayerVersion(val *float64)
FlushMetricsToLogs() *bool
SetFlushMetricsToLogs(val *bool)
Site() *string
SetSite(val *string)
ApplyEnvVars(lam awslambda.Function)
}
Source Files
¶
- APMFeatureConfig.go
- CWSFeatureConfig.go
- Cardinality.go
- DatadogECSBaseProps.go
- DatadogECSFargate.go
- DatadogECSFargateProps.go
- DatadogECSFargateTaskDefinition.go
- DatadogECSFargateTaskDefinition__checks.go
- DatadogECSFargate__checks.go
- DatadogECSLogDriverProps.go
- DatadogFirelensOptions.go
- DatadogLambda.go
- DatadogLambdaProps.go
- DatadogLambdaStrictProps.go
- DatadogLambda__checks.go
- DatadogStepFunctions.go
- DatadogStepFunctionsProps.go
- DatadogStepFunctions__checks.go
- DogstatsdFeatureConfig.go
- FargateCWSFeatureConfig.go
- FargateLogCollectionFeatureConfig.go
- FluentbitConfig.go
- LogCollectionFeatureConfig.go
- LoggingType.go
- Node.go
- Runtime.go
- RuntimeType.go
- TagKeys.go
- Transport.go
- Transport__checks.go
- main.go