# AWS::CodeGuruProfiler Construct Library

Amazon CodeGuru Profiler collects runtime performance data from your live applications, and provides recommendations that can help you fine-tune your application performance.

## Installation

Import to your project:

```ts
import * as codeguruprofiler from 'aws-cdk-lib/aws-codeguruprofiler';
```

## Basic usage

Here's how to setup a profiling group and give your compute role permissions to publish to the profiling group to the profiling agent can publish profiling information:

```ts
// The execution role of your application that publishes to the ProfilingGroup via CodeGuru Profiler Profiling Agent. (the following is merely an example)
const publishAppRole = new iam.Role(this, 'PublishAppRole', {
  assumedBy: new iam.AccountRootPrincipal(),
});

const profilingGroup = new codeguruprofiler.ProfilingGroup(this, 'MyProfilingGroup');
profilingGroup.grantPublish(publishAppRole);
```

## Compute Platform configuration

Code Guru Profiler supports multiple compute environments.
They can be configured when creating a Profiling Group by using the `computePlatform` property:

```ts
const profilingGroup = new codeguruprofiler.ProfilingGroup(this, 'MyProfilingGroup', {
  computePlatform: codeguruprofiler.ComputePlatform.AWS_LAMBDA,
});
```

## Types

| Name | Kind | Summary |
| --- | --- | --- |
| [`ProfilingGroup`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.ProfilingGroup) | Construct (L2) | A new Profiling Group. |
| [`CfnProfilingGroup`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.CfnProfilingGroup) | Construct (L1) | Creates a profiling group. |
| [`CfnProfilingGroup.AgentPermissionsProperty`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.CfnProfilingGroup.AgentPermissionsProperty) | Struct | The agent permissions attached to this profiling group. |
| [`CfnProfilingGroup.ChannelProperty`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.CfnProfilingGroup.ChannelProperty) | Struct | Notification medium for users to get alerted for events that occur in application profile. |
| [`CfnProfilingGroupProps`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.CfnProfilingGroupProps) | Struct | Properties for defining a `CfnProfilingGroup`. |
| [`ComputePlatform`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.ComputePlatform) | Enum | The compute platform of the profiling group. |
| [`IProfilingGroup`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.IProfilingGroup) | Interface | IResource represents a Profiling Group. |
| [`ProfilingGroupGrants`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.ProfilingGroupGrants) | Facade | Collection of grant methods for a IProfilingGroupRef. |
| [`ProfilingGroupProps`](/v2/docs/aws-cdk-lib.aws_codeguruprofiler.ProfilingGroupProps) | Struct | Properties for creating a new Profiling Group. |
