[ aws . application-signals ]

create-instrumentation-configuration

Description

Creates a dynamic instrumentation configuration for a specific code or endpoint location within a service and environment. Configurations are immutable after creation.

For BREAKPOINT type configurations, they expire after 24 hours unless a shorter expiration is provided. For PROBE type configurations, they persist until explicitly deleted; an expiration cannot be set for PROBE configurations.

If a configuration already exists for the same service, environment, signal type, and location, this operation returns a conflict instead of overwriting it. Use attribute filters and capture settings to control where the instrumentation runs and which data is collected.

See also: AWS API Documentation

Synopsis

  create-instrumentation-configuration
--instrumentation-type <value>
--service <value>
--environment <value>
--signal-type <value>
--location <value>
[--description <value>]
[--expires-at <value>]
[--attribute-filters <value>]
--capture-configuration <value>
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
[--cli-error-format <value>]

Options

--instrumentation-type (string) [required]

Type of instrumentation: BREAKPOINT (temporary) or PROBE (permanent)

Possible values:

  • BREAKPOINT
  • PROBE

--service (string) [required]

The name of the service to instrument. This should match the service.name resource attribute reported by the application.

Constraints:

  • min: 1
  • max: 255
  • pattern: [A-Za-z0-9:/+=,.@_-]+

--environment (string) [required]

The environment that the service is running in, such as eks:cluster-prod/namespace or ec2:production .

Constraints:

  • min: 1
  • max: 255
  • pattern: [A-Za-z0-9:/+=,.@_-]+

--signal-type (string) [required]

The telemetry signal type to emit for this instrumentation. The supported value is SNAPSHOT .

Possible values:

  • SNAPSHOT

--location (tagged union structure) [required]

The location where instrumentation should be applied. Specify a CodeLocation for code-level instrumentation.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: CodeLocation.

CodeLocation -> (structure)

A code location for code-level instrumentation, including language, code unit, class, method, file path, and optional line number.

Language -> (string) [required]

The programming language for this instrumentation point, such as Java, Python, or JavaScript.

Possible values:

  • Java
  • Python
  • Javascript

CodeUnit -> (string)

The package, module, or namespace that contains the target code, for example com.amazon.payment or payment_service .

Constraints:

  • min: 1
  • max: 128

ClassName -> (string)

The class or type name that contains the method. This is required for Java and optional for Python module-level functions.

Constraints:

  • min: 1
  • max: 128

MethodName -> (string)

The method or function name to instrument, such as validateCreditCard or __init__ .

Constraints:

  • min: 1
  • max: 80

FilePath -> (string) [required]

The source file path relative to the project or source root, such as src/payment/PaymentProcessor.java or src/payment/PaymentProcessor.py .

Constraints:

  • min: 1
  • max: 1024

LineNumber -> (integer)

The line number to instrument. Provide this to disambiguate overloaded methods and to target a specific line when needed.

Constraints:

  • min: 1

Shorthand Syntax:

CodeLocation={Language=string,CodeUnit=string,ClassName=string,MethodName=string,FilePath=string,LineNumber=integer}

JSON Syntax:

{
  "CodeLocation": {
    "Language": "Java"|"Python"|"Javascript",
    "CodeUnit": "string",
    "ClassName": "string",
    "MethodName": "string",
    "FilePath": "string",
    "LineNumber": integer
  }
}

--description (string)

An optional short description (up to 50 characters) that explains the purpose of this instrumentation.

Constraints:

  • min: 1
  • max: 50

--expires-at (timestamp)

For BREAKPOINT: optional, defaults to 24 hours, must be between 5 min and 24 hours. For PROBE: not supported. PROBE configurations are permanent and persist until explicitly deleted.

--attribute-filters (list)

Client-side filters that target specific instances. Each object in the array is AND-matched on its keys, and multiple objects are OR-matched to decide where to apply the instrumentation.

Constraints:

  • min: 1
  • max: 10

(map)

A string-to-string map of OpenTelemetry resource attributes and values that must all match for the instrumentation to run on an instance.

key -> (string)

Constraints:

  • min: 1
  • max: 50

value -> (string)

Constraints:

  • min: 1
  • max: 100

Shorthand Syntax:

KeyName1=string,KeyName2=string ...

JSON Syntax:

[
  {"string": "string"
    ...}
  ...
]

--capture-configuration (tagged union structure) [required]

Specifies what to capture when the instrumentation point is hit. Specify CodeCapture for code-level capture settings.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: CodeCapture.

CodeCapture -> (structure)

Capture settings for code-level instrumentation, including arguments, return values, stack traces, local variables, and safety limits.

CaptureArguments -> (list)

The function arguments to capture. Omit to capture defaults, use an empty list to capture none, use ["*"] to capture all arguments, or specify argument names to capture selectively (up to 10 entries).

Constraints:

  • min: 0
  • max: 10

(string)

Constraints:

  • min: 1
  • max: 80

CaptureReturn -> (boolean)

Whether to capture the return value. Defaults to false.

CaptureStackTrace -> (boolean)

Whether to capture a stack trace when the instrumentation point is hit. Defaults to true.

CaptureLocals -> (list)

The local variables to capture by name. Omit or pass an empty list to capture none. You can specify up to 20 names.

Constraints:

  • min: 0
  • max: 20

(string)

Constraints:

  • min: 1
  • max: 80

CaptureLimits -> (structure) [required]

Safety limits that bound what is captured, including hit counts, string length, collection depth, and stack trace size.

MaxHits -> (integer)

The maximum number of times the instrumentation point can be hit before it is automatically disabled. Defaults to 100.

Constraints:

  • min: 1
  • max: 1000

MaxStringLength -> (integer)

The maximum length of captured string values in characters. Strings longer than this are truncated. Defaults to 128.

Constraints:

  • min: 1
  • max: 255

MaxCollectionWidth -> (integer)

The maximum number of items to capture from any collection to prevent large payloads. Defaults to 10.

Constraints:

  • min: 1
  • max: 20

MaxCollectionDepth -> (integer)

The maximum nesting depth to traverse inside collections. Defaults to 3.

Constraints:

  • min: 1
  • max: 5

MaxStackFrames -> (integer)

The maximum number of stack frames to capture in stack traces. Defaults to 2.

Constraints:

  • min: 1
  • max: 20

MaxStackTraceSize -> (integer)

The maximum total size, in bytes, of a captured stack trace. Defaults to 1000.

Constraints:

  • min: 1
  • max: 1000

MaxObjectDepth -> (integer)

The maximum depth for nested object traversal when capturing structured data. Defaults to 3.

Constraints:

  • min: 1
  • max: 5

MaxFieldsPerObject -> (integer)

The maximum number of fields to capture for any object. Defaults to 10.

Constraints:

  • min: 1
  • max: 20

Shorthand Syntax:

CodeCapture={CaptureArguments=[string,string],CaptureReturn=boolean,CaptureStackTrace=boolean,CaptureLocals=[string,string],CaptureLimits={MaxHits=integer,MaxStringLength=integer,MaxCollectionWidth=integer,MaxCollectionDepth=integer,MaxStackFrames=integer,MaxStackTraceSize=integer,MaxObjectDepth=integer,MaxFieldsPerObject=integer}}

JSON Syntax:

{
  "CodeCapture": {
    "CaptureArguments": ["string", ...],
    "CaptureReturn": true|false,
    "CaptureStackTrace": true|false,
    "CaptureLocals": ["string", ...],
    "CaptureLimits": {
      "MaxHits": integer,
      "MaxStringLength": integer,
      "MaxCollectionWidth": integer,
      "MaxCollectionDepth": integer,
      "MaxStackFrames": integer,
      "MaxStackTraceSize": integer,
      "MaxObjectDepth": integer,
      "MaxFieldsPerObject": integer
    }
  }
}

--tags (list)

An optional list of key-value pairs to associate with the instrumentation configuration. Tags can help you organize and categorize your resources.

Constraints:

  • min: 0
  • max: 200

(structure)

A key-value pair associated with a resource. Tags can help you organize and categorize your resources.

Key -> (string) [required]

A string that you can use to assign a value. The combination of tag keys and values can help you organize and categorize your resources.

Constraints:

  • min: 1
  • max: 128

Value -> (string) [required]

The value for the specified tag key.

Constraints:

  • min: 0
  • max: 256

Shorthand Syntax:

Key=string,Value=string ...

JSON Syntax:

[
  {
    "Key": "string",
    "Value": "string"
  }
  ...
]

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command. The generated JSON skeleton is not stable between versions of the AWS CLI and there are no backwards compatibility guarantees in the JSON skeleton generated.

Global Options

--debug (boolean)

Turn on debug logging.

--endpoint-url (string)

Override command’s default URL with the given URL.

--no-verify-ssl (boolean)

By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.

--no-paginate (boolean)

Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.

--output (string)

The formatting style for command output.

  • json
  • text
  • table
  • yaml
  • yaml-stream
  • off

--query (string)

A JMESPath query to use in filtering the response data.

--profile (string)

Use a specific profile from your credential file.

--region (string)

The region to use. Overrides config/env settings.

--version (string)

Display the version of this tool.

--color (string)

Turn on/off color output.

  • on
  • off
  • auto

--no-sign-request (boolean)

Do not sign requests. Credentials will not be loaded if this argument is provided.

--ca-bundle (string)

The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.

--cli-read-timeout (int)

The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.

--cli-connect-timeout (int)

The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.

--cli-binary-format (string)

The formatting style to be used for binary blobs. The default format is base64. The base64 format expects binary blobs to be provided as a base64 encoded string. The raw-in-base64-out format preserves compatibility with AWS CLI V1 behavior and binary values must be passed literally. When providing contents from a file that map to a binary blob fileb:// will always be treated as binary and use the file contents directly regardless of the cli-binary-format setting. When using file:// the file contents will need to properly formatted for the configured cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (boolean)

Disable cli pager for output.

--cli-auto-prompt (boolean)

Automatically prompt for CLI input parameters.

--no-cli-auto-prompt (boolean)

Disable automatically prompt for CLI input parameters.

--cli-error-format (string)

The formatting style for error output. By default, errors are displayed in enhanced format.

  • legacy
  • json
  • yaml
  • text
  • table
  • enhanced

Output

InstrumentationType -> (string)

The type of instrumentation that was created, echoed from the request.

Possible values:

  • BREAKPOINT
  • PROBE

Service -> (string)

The service name for the instrumentation configuration, echoed from the request.

Constraints:

  • min: 1
  • max: 255

Environment -> (string)

The environment for the instrumentation configuration, echoed from the request.

Constraints:

  • min: 1
  • max: 255

SignalType -> (string)

The telemetry signal type for the instrumentation configuration, echoed from the request.

Possible values:

  • SNAPSHOT

Location -> (tagged union structure)

The location where instrumentation is applied, echoed from the request.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: CodeLocation.

CodeLocation -> (structure)

A code location for code-level instrumentation, including language, code unit, class, method, file path, and optional line number.

Language -> (string) [required]

The programming language for this instrumentation point, such as Java, Python, or JavaScript.

Possible values:

  • Java
  • Python
  • Javascript

CodeUnit -> (string)

The package, module, or namespace that contains the target code, for example com.amazon.payment or payment_service .

Constraints:

  • min: 1
  • max: 128

ClassName -> (string)

The class or type name that contains the method. This is required for Java and optional for Python module-level functions.

Constraints:

  • min: 1
  • max: 128

MethodName -> (string)

The method or function name to instrument, such as validateCreditCard or __init__ .

Constraints:

  • min: 1
  • max: 80

FilePath -> (string) [required]

The source file path relative to the project or source root, such as src/payment/PaymentProcessor.java or src/payment/PaymentProcessor.py .

Constraints:

  • min: 1
  • max: 1024

LineNumber -> (integer)

The line number to instrument. Provide this to disambiguate overloaded methods and to target a specific line when needed.

Constraints:

  • min: 1

LocationHash -> (string)

A stable hash computed from the location that uniquely identifies this instrumentation point within the service, environment, and signal type.

Constraints:

  • min: 16
  • max: 16

Description -> (string)

The optional description that was stored with the instrumentation configuration.

ExpiresAt -> (timestamp)

The timestamp after which this configuration is no longer served to clients. Present only for BREAKPOINT configurations; PROBE configurations do not expire.

AttributeFilters -> (list)

The attribute filters returned with the configuration so SDKs can perform client-side targeting.

Constraints:

  • min: 1
  • max: 10

(map)

A string-to-string map of OpenTelemetry resource attributes and values that must all match for the instrumentation to run on an instance.

key -> (string)

Constraints:

  • min: 1
  • max: 50

value -> (string)

Constraints:

  • min: 1
  • max: 100

CaptureConfiguration -> (tagged union structure)

The capture settings that were stored for this instrumentation configuration.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: CodeCapture.

CodeCapture -> (structure)

Capture settings for code-level instrumentation, including arguments, return values, stack traces, local variables, and safety limits.

CaptureArguments -> (list)

The function arguments to capture. Omit to capture defaults, use an empty list to capture none, use ["*"] to capture all arguments, or specify argument names to capture selectively (up to 10 entries).

Constraints:

  • min: 0
  • max: 10

(string)

Constraints:

  • min: 1
  • max: 80

CaptureReturn -> (boolean)

Whether to capture the return value. Defaults to false.

CaptureStackTrace -> (boolean)

Whether to capture a stack trace when the instrumentation point is hit. Defaults to true.

CaptureLocals -> (list)

The local variables to capture by name. Omit or pass an empty list to capture none. You can specify up to 20 names.

Constraints:

  • min: 0
  • max: 20

(string)

Constraints:

  • min: 1
  • max: 80

CaptureLimits -> (structure) [required]

Safety limits that bound what is captured, including hit counts, string length, collection depth, and stack trace size.

MaxHits -> (integer)

The maximum number of times the instrumentation point can be hit before it is automatically disabled. Defaults to 100.

Constraints:

  • min: 1
  • max: 1000

MaxStringLength -> (integer)

The maximum length of captured string values in characters. Strings longer than this are truncated. Defaults to 128.

Constraints:

  • min: 1
  • max: 255

MaxCollectionWidth -> (integer)

The maximum number of items to capture from any collection to prevent large payloads. Defaults to 10.

Constraints:

  • min: 1
  • max: 20

MaxCollectionDepth -> (integer)

The maximum nesting depth to traverse inside collections. Defaults to 3.

Constraints:

  • min: 1
  • max: 5

MaxStackFrames -> (integer)

The maximum number of stack frames to capture in stack traces. Defaults to 2.

Constraints:

  • min: 1
  • max: 20

MaxStackTraceSize -> (integer)

The maximum total size, in bytes, of a captured stack trace. Defaults to 1000.

Constraints:

  • min: 1
  • max: 1000

MaxObjectDepth -> (integer)

The maximum depth for nested object traversal when capturing structured data. Defaults to 3.

Constraints:

  • min: 1
  • max: 5

MaxFieldsPerObject -> (integer)

The maximum number of fields to capture for any object. Defaults to 10.

Constraints:

  • min: 1
  • max: 20

CreatedAt -> (timestamp)

The server-generated creation timestamp for this instrumentation configuration.

ARN -> (string)

ARN for the created instrumentation configuration

Constraints:

  • pattern: arn:[^:]+:application-signals:[^:]+:[0-9]{12}:instrumentationConfig/.+/[0-9a-f]{16}