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: "*"
}
]
}
});