NAME

Paws::CodeGuruProfiler - Perl Interface to AWS Amazon CodeGuru Profiler

SYNOPSIS

use Paws;

my $obj = Paws->service('CodeGuruProfiler');
my $res = $obj->Method(
  Arg1 => $val1,
  Arg2 => [ 'V1', 'V2' ],
  # if Arg3 is an object, the HashRef will be used as arguments to the constructor
  # of the arguments type
  Arg3 => { Att1 => 'Val1' },
  # if Arg4 is an array of objects, the HashRefs will be passed as arguments to
  # the constructor of the arguments type
  Arg4 => [ { Att1 => 'Val1'  }, { Att1 => 'Val2' } ],
);

DESCRIPTION

This section provides documentation for the Amazon CodeGuru Profiler API operations.

Amazon CodeGuru Profiler collects runtime performance data from your live applications, and provides recommendations that can help you fine-tune your application performance. Using machine learning algorithms, CodeGuru Profiler can help you find your most expensive lines of code and suggest ways you can improve efficiency and remove CPU bottlenecks.

Amazon CodeGuru Profiler provides different visualizations of profiling data to help you identify what code is running on the CPU, see how much time is consumed, and suggest ways to reduce CPU utilization.

Amazon CodeGuru Profiler currently supports applications written in all Java virtual machine (JVM) languages and Python. While CodeGuru Profiler supports both visualizations and recommendations for applications written in Java, it can also generate visualizations and a subset of recommendations for applications written in other JVM languages and Python.

For more information, see What is Amazon CodeGuru Profiler (https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) in the Amazon CodeGuru Profiler User Guide.

For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/codeguru-profiler-2019-07-18

METHODS

AddNotificationChannels

Channels => ArrayRef[Paws::CodeGuruProfiler::Channel]
ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::AddNotificationChannels

Returns: a Paws::CodeGuruProfiler::AddNotificationChannelsResponse instance

Add up to 2 anomaly notifications channels for a profiling group.

BatchGetFrameMetricData

ProfilingGroupName => Str
[EndTime => Str]
[FrameMetrics => ArrayRef[Paws::CodeGuruProfiler::FrameMetric]]
[Period => Str]
[StartTime => Str]
[TargetResolution => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::BatchGetFrameMetricData

Returns: a Paws::CodeGuruProfiler::BatchGetFrameMetricDataResponse instance

Returns the time series of values for a requested list of frame metrics from a time period.

ConfigureAgent

ProfilingGroupName => Str
[FleetInstanceId => Str]
[Metadata => Paws::CodeGuruProfiler::Metadata]

Each argument is described in detail in: Paws::CodeGuruProfiler::ConfigureAgent

Returns: a Paws::CodeGuruProfiler::ConfigureAgentResponse instance

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.

CreateProfilingGroup

ClientToken => Str
ProfilingGroupName => Str
[AgentOrchestrationConfig => Paws::CodeGuruProfiler::AgentOrchestrationConfig]
[ComputePlatform => Str]
[Tags => Paws::CodeGuruProfiler::TagsMap]

Each argument is described in detail in: Paws::CodeGuruProfiler::CreateProfilingGroup

Returns: a Paws::CodeGuruProfiler::CreateProfilingGroupResponse instance

Creates a profiling group.

DeleteProfilingGroup

ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::DeleteProfilingGroup

Returns: a Paws::CodeGuruProfiler::DeleteProfilingGroupResponse instance

Deletes a profiling group.

DescribeProfilingGroup

ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::DescribeProfilingGroup

Returns: a Paws::CodeGuruProfiler::DescribeProfilingGroupResponse instance

Returns a ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) object that contains information about the requested profiling group.

GetFindingsReportAccountSummary

[DailyReportsOnly => Bool]
[MaxResults => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::GetFindingsReportAccountSummary

Returns: a Paws::CodeGuruProfiler::GetFindingsReportAccountSummaryResponse instance

Returns a list of FindingsReportSummary (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_FindingsReportSummary.html) objects that contain analysis results for all profiling groups in your AWS account.

GetNotificationConfiguration

ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::GetNotificationConfiguration

Returns: a Paws::CodeGuruProfiler::GetNotificationConfigurationResponse instance

Get the current configuration for anomaly notifications for a profiling group.

GetPolicy

ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::GetPolicy

Returns: a Paws::CodeGuruProfiler::GetPolicyResponse instance

Returns the JSON-formatted resource-based policy on a profiling group.

GetProfile

ProfilingGroupName => Str
[Accept => Str]
[EndTime => Str]
[MaxDepth => Int]
[Period => Str]
[StartTime => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::GetProfile

Returns: a Paws::CodeGuruProfiler::GetProfileResponse instance

Gets the aggregated profile of a profiling group for a specified time range. Amazon CodeGuru Profiler collects posted agent profiles for a profiling group into aggregated profiles.

<note> <p> Because aggregated profiles expire over time <code>GetProfile</code> is not idempotent. </p> </note> <p> Specify the time range for the requested aggregated profile using 1 or 2 of the following parameters: <code>startTime</code>, <code>endTime</code>, <code>period</code>. The maximum time range allowed is 7 days. If you specify all 3 parameters, an exception is thrown. If you specify only <code>period</code>, the latest aggregated profile is returned. </p> <p> Aggregated profiles are available with aggregation periods of 5 minutes, 1 hour, and 1 day, aligned to UTC. The aggregation period of an aggregated profile determines how long it is retained. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_AggregatedProfileTime.html"> <code>AggregatedProfileTime</code> </a>. The aggregated profile's aggregation period determines how long it is retained by CodeGuru Profiler. </p> <ul> <li> <p> If the aggregation period is 5 minutes, the aggregated profile is retained for 15 days. </p> </li> <li> <p> If the aggregation period is 1 hour, the aggregated profile is retained for 60 days. </p> </li> <li> <p> If the aggregation period is 1 day, the aggregated profile is retained for 3 years. </p> </li> </ul> <p>There are two use cases for calling <code>GetProfile</code>.</p> <ol> <li> <p> If you want to return an aggregated profile that already exists, use <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ListProfileTimes.html"> <code>ListProfileTimes</code> </a> to view the time ranges of existing aggregated profiles. Use them in a <code>GetProfile</code> request to return a specific, existing aggregated profile. </p> </li> <li> <p> If you want to return an aggregated profile for a time range that doesn't align with an existing aggregated profile, then CodeGuru Profiler makes a best effort to combine existing aggregated profiles from the requested time range and return them as one aggregated profile. </p> <p> If aggregated profiles do not exist for the full time range requested, then aggregated profiles for a smaller time range are returned. For example, if the requested time range is from 00:00 to 00:20, and the existing aggregated profiles are from 00:15 and 00:25, then the aggregated profiles from 00:15 to 00:20 are returned. </p> </li> </ol>

GetRecommendations

EndTime => Str
ProfilingGroupName => Str
StartTime => Str
[Locale => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::GetRecommendations

Returns: a Paws::CodeGuruProfiler::GetRecommendationsResponse instance

Returns a list of Recommendation (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Recommendation.html) objects that contain recommendations for a profiling group for a given time period. A list of Anomaly (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_Anomaly.html) objects that contains details about anomalies detected in the profiling group for the same time period is also returned.

ListFindingsReports

EndTime => Str
ProfilingGroupName => Str
StartTime => Str
[DailyReportsOnly => Bool]
[MaxResults => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::ListFindingsReports

Returns: a Paws::CodeGuruProfiler::ListFindingsReportsResponse instance

List the available reports for a given profiling group and time range.

ListProfileTimes

EndTime => Str
Period => Str
ProfilingGroupName => Str
StartTime => Str
[MaxResults => Int]
[NextToken => Str]
[OrderBy => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::ListProfileTimes

Returns: a Paws::CodeGuruProfiler::ListProfileTimesResponse instance

Lists the start times of the available aggregated profiles of a profiling group for an aggregation period within the specified time range.

ListProfilingGroups

[IncludeDescription => Bool]
[MaxResults => Int]
[NextToken => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::ListProfilingGroups

Returns: a Paws::CodeGuruProfiler::ListProfilingGroupsResponse instance

Returns a list of profiling groups. The profiling groups are returned as ProfilingGroupDescription (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ProfilingGroupDescription.html) objects.

ListTagsForResource

ResourceArn => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::ListTagsForResource

Returns: a Paws::CodeGuruProfiler::ListTagsForResourceResponse instance

Returns a list of the tags that are assigned to a specified resource.

PostAgentProfile

AgentProfile => Str
ContentType => Str
ProfilingGroupName => Str
[ProfileToken => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::PostAgentProfile

Returns: a Paws::CodeGuruProfiler::PostAgentProfileResponse instance

Submits profiling data to an aggregated profile of a profiling group. To get an aggregated profile that is created with this profiling data, use GetProfile (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_GetProfile.html).

PutPermission

ActionGroup => Str
Principals => ArrayRef[Str|Undef]
ProfilingGroupName => Str
[RevisionId => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::PutPermission

Returns: a Paws::CodeGuruProfiler::PutPermissionResponse instance

Adds permissions to a profiling group's resource-based policy that are provided using an action group. If a profiling group doesn't have a resource-based policy, one is created for it using the permissions in the action group and the roles and users in the principals parameter.

<p> The one supported action group that can be added is <code>agentPermission</code> which grants <code>ConfigureAgent</code> and <code>PostAgent</code> permissions. For more information, see <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html">Resource-based policies in CodeGuru Profiler</a> in the <i>Amazon CodeGuru Profiler User Guide</i>, <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html"> <code>ConfigureAgent</code> </a>, and <a href="https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html"> <code>PostAgentProfile</code> </a>. </p> <p> The first time you call <code>PutPermission</code> on a profiling group, do not specify a <code>revisionId</code> because it doesn't have a resource-based policy. Subsequent calls must provide a <code>revisionId</code> to specify which revision of the resource-based policy to add the permissions to. </p> <p> The response contains the profiling group's JSON-formatted resource policy. </p>

RemoveNotificationChannel

ChannelId => Str
ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::RemoveNotificationChannel

Returns: a Paws::CodeGuruProfiler::RemoveNotificationChannelResponse instance

Remove one anomaly notifications channel for a profiling group.

RemovePermission

ActionGroup => Str
ProfilingGroupName => Str
RevisionId => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::RemovePermission

Returns: a Paws::CodeGuruProfiler::RemovePermissionResponse instance

Removes permissions from a profiling group's resource-based policy that are provided using an action group. The one supported action group that can be removed is agentPermission which grants ConfigureAgent and PostAgent permissions. For more information, see Resource-based policies in CodeGuru Profiler (https://docs.aws.amazon.com/codeguru/latest/profiler-ug/resource-based-policies.html) in the Amazon CodeGuru Profiler User Guide, ConfigureAgent (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_ConfigureAgent.html), and PostAgentProfile (https://docs.aws.amazon.com/codeguru/latest/profiler-api/API_PostAgentProfile.html).

SubmitFeedback

AnomalyInstanceId => Str
ProfilingGroupName => Str
Type => Str
[Comment => Str]

Each argument is described in detail in: Paws::CodeGuruProfiler::SubmitFeedback

Returns: a Paws::CodeGuruProfiler::SubmitFeedbackResponse instance

Sends feedback to CodeGuru Profiler about whether the anomaly detected by the analysis is useful or not.

TagResource

ResourceArn => Str
Tags => Paws::CodeGuruProfiler::TagsMap

Each argument is described in detail in: Paws::CodeGuruProfiler::TagResource

Returns: a Paws::CodeGuruProfiler::TagResourceResponse instance

Use to assign one or more tags to a resource.

UntagResource

ResourceArn => Str
TagKeys => ArrayRef[Str|Undef]

Each argument is described in detail in: Paws::CodeGuruProfiler::UntagResource

Returns: a Paws::CodeGuruProfiler::UntagResourceResponse instance

Use to remove one or more tags from a resource.

UpdateProfilingGroup

AgentOrchestrationConfig => Paws::CodeGuruProfiler::AgentOrchestrationConfig
ProfilingGroupName => Str

Each argument is described in detail in: Paws::CodeGuruProfiler::UpdateProfilingGroup

Returns: a Paws::CodeGuruProfiler::UpdateProfilingGroupResponse instance

Updates a profiling group.

PAGINATORS

Paginator methods are helpers that repetively call methods that return partial results

ListAllProfileTimes(sub { },EndTime => Str, Period => Str, ProfilingGroupName => Str, StartTime => Str, [MaxResults => Int, NextToken => Str, OrderBy => Str])

ListAllProfileTimes(EndTime => Str, Period => Str, ProfilingGroupName => Str, StartTime => Str, [MaxResults => Int, NextToken => Str, OrderBy => Str])

If passed a sub as first parameter, it will call the sub for each element found in :

- profileTimes, passing the object as the first parameter, and the string 'profileTimes' as the second parameter 

If not, it will return a a Paws::CodeGuruProfiler::ListProfileTimesResponse instance with all the params; from all the responses. Please take into account that this mode can potentially consume vasts ammounts of memory.

SEE ALSO

This service class forms part of Paws

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues