Skip to content

ProfilingGroup ​

The ProfilingGroup resource lets you manage AWS CodeGuruProfiler ProfilingGroups to monitor and optimize your applications' performance.

Minimal Example ​

Create a basic profiling group with a name and a compute platform.

ts
import AWS from "alchemy/aws/control";

const basicProfilingGroup = await AWS.CodeGuruProfiler.ProfilingGroup("basicProfilingGroup", {
  ProfilingGroupName: "MyApplicationProfilingGroup",
  ComputePlatform: "Default" // Specify platform as Default or EKS
});

Advanced Configuration ​

Configure a profiling group with anomaly detection notifications and tags for better management.

ts
const advancedProfilingGroup = await AWS.CodeGuruProfiler.ProfilingGroup("advancedProfilingGroup", {
  ProfilingGroupName: "MyAdvancedProfilingGroup",
  AnomalyDetectionNotificationConfiguration: [
    {
      Channel: {
        Sns: {
          TopicArn: "arn:aws:sns:us-west-2:123456789012:MySNSTopic"
        }
      }
    }
  ],
  Tags: [
    {
      Key: "Environment",
      Value: "Production"
    },
    {
      Key: "Application",
      Value: "MyWebApp"
    }
  ]
});

Adopting Existing Resources ​

If you want to adopt an existing profiling group instead of failing when it already exists, use the adopt option.

ts
const adoptProfilingGroup = await AWS.CodeGuruProfiler.ProfilingGroup("adoptProfilingGroup", {
  ProfilingGroupName: "MyExistingProfilingGroup",
  adopt: true // Enable adopting existing resource
});

Setting Agent Permissions ​

Set agent permissions to control access for your profiling group.

ts
const permissionProfilingGroup = await AWS.CodeGuruProfiler.ProfilingGroup("permissionProfilingGroup", {
  ProfilingGroupName: "MyPermissionedProfilingGroup",
  AgentPermissions: {
    Allow: [
      {
        Principal: "arn:aws:iam::123456789012:role/MyProfilerRole",
        Action: "codeguru-profiler:PutPermission",
        Resource: "*"
      }
    ]
  }
});