ConfigureAgent - Amazon CodeGuru Profiler


Used by profiler agents to report their current state and to receive remote configuration updates. For example, ConfigureAgent can be used to tell an agent whether to profile or not and for how long to return profiling data.

Request Syntax

POST /profilingGroups/profilingGroupName/configureAgent HTTP/1.1 Content-type: application/json { "fleetInstanceId": "string", "metadata": { "string" : "string" } }

URI Request Parameters

The request uses the following URI parameters.


The name of the profiling group for which the configured agent is collecting profiling data.

Length Constraints: Minimum length of 1. Maximum length of 255.

Pattern: ^[\w-]+$

Required: Yes

Request Body

The request accepts the following data in JSON format.


A universally unique identifier (UUID) for a profiling instance. For example, if the profiling instance is an Amazon EC2 instance, it is the instance ID. If it is an AWS Fargate container, it is the container's task ID.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 255.

Required: No


Metadata captured about the compute platform the agent is running on. It includes information about sampling and reporting. The valid fields are:

  • COMPUTE_PLATFORM - The compute platform on which the agent is running

  • AGENT_ID - The ID for an agent instance.

  • AWS_REQUEST_ID - The AWS request ID of a Lambda invocation.

  • EXECUTION_ENVIRONMENT - The execution environment a Lambda function is running on.

  • LAMBDA_FUNCTION_ARN - The Amazon Resource Name (ARN) that is used to invoke a Lambda function.

  • LAMBDA_MEMORY_LIMIT_IN_MB - The memory allocated to a Lambda function.

  • LAMBDA_REMAINING_TIME_IN_MILLISECONDS - The time in milliseconds before execution of a Lambda function times out.

  • LAMBDA_TIME_GAP_BETWEEN_INVOKES_IN_MILLISECONDS - The time in milliseconds between two invocations of a Lambda function.

  • LAMBDA_PREVIOUS_EXECUTION_TIME_IN_MILLISECONDS - The time in milliseconds for the previous Lambda invocation.

Type: String to string map

Valid Keys: ComputePlatform | AgentId | AwsRequestId | ExecutionEnvironment | LambdaFunctionArn | LambdaMemoryLimitInMB | LambdaRemainingTimeInMilliseconds | LambdaTimeGapBetweenInvokesInMilliseconds | LambdaPreviousExecutionTimeInMilliseconds

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "agentParameters": { "string" : "string" }, "periodInSeconds": number, "shouldProfile": boolean }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.


Parameters used by the profiler. The valid parameters are:

  • MaxStackDepth - The maximum depth of the stacks in the code that is represented in the profile. For example, if CodeGuru Profiler finds a method A, which calls method B, which calls method C, which calls method D, then the depth is 4. If the maxDepth is set to 2, then the profiler evaluates A and B.

  • MemoryUsageLimitPercent - The percentage of memory that is used by the profiler.

  • MinimumTimeForReportingInMilliseconds - The minimum time in milliseconds between sending reports.

  • ReportingIntervalInMilliseconds - The reporting interval in milliseconds used to report profiles.

  • SamplingIntervalInMilliseconds - The sampling interval in milliseconds that is used to profile samples.

Type: String to string map

Valid Keys: SamplingIntervalInMilliseconds | ReportingIntervalInMilliseconds | MinimumTimeForReportingInMilliseconds | MemoryUsageLimitPercent | MaxStackDepth


How long a profiling agent should send profiling data using ConfigureAgent. For example, if this is set to 300, the profiling agent calls ConfigureAgent every 5 minutes to submit the profiled data collected during that period.

Type: Integer


A Boolean that specifies whether the profiling agent collects profiling data or not. Set to true to enable profiling.

Type: Boolean


For information about the errors that are common to all actions, see Common Errors.


The server encountered an internal error and is unable to complete the request.

HTTP Status Code: 500


The resource specified in the request does not exist.

HTTP Status Code: 404


The request was denied due to request throttling.

HTTP Status Code: 429


The parameter is not valid.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: