- Home
- Profiling Software
- Amazon CodeGuru Profiler
Amazon CodeGuru Profiler
What it is
Amazon CodeGuru Profiler collects runtime performance data from live applications and recommends ways to address performance issues, including CPU bottlenecks. It is built for continuous use with production applications and minimal overhead. Interactive flame graphs show CPU and latency patterns, helping identify code paths that use the most resources. Machine learning recommendations describe costly methods and their causes, impacts, and possible resolutions. The service can detect profile anomalies and, when configured, send an Amazon SNS notification about a new one. It supports Java and other JVM languages, including Scala and Kotlin, plus Python 3.6 or later; Java and JVM profiling covers CPU and heap summaries, while Python profiling covers CPU wall-clock time. Applications can run on AWS services or on premises. CodeGuru Profiler requires an AWS account, and IAM permissions govern access. It collects stack traces, not parameter names or values, variable values, or application data. Profiles have different retention periods: five-minute profiles remain for 15 days, hourly profiles for 60 days, and daily profiles for three years. Pricing includes a 90-day free tier, followed by sampling-hour charges.
For and against
For
- Designed for continuous production profiling with minimal overhead
- Interactive flame graphs show CPU and latency analysis
- Recommendations explain costly methods and possible resolutions
- Can notify through Amazon SNS about detected anomalies
- Encrypts data at rest and in transit by default
Against
- Requires an AWS account
- Python profiling covers CPU wall-clock time
- The free tier lasts 90 days
- IAM permissions must be managed for resource access
The verdict
Amazon CodeGuru Profiler combines ongoing sampling, flame graphs, recommendations, and anomaly detection for supported applications. Check its language-specific profiling coverage and sampling-hour pricing against your needs before using it.
Who it suits
It suits teams running Java, JVM-language, or Python applications that need ongoing production profiling and recommendations. It may also fit organizations that want anomaly notifications and defined profile retention periods.
Plans and prices
Amazon CodeGuru Profiler Free Tier
90 days; after that, standard sampling-hour pricing applies
Read 8 Oct 2026 · aws.amazon.com
Amazon CodeGuru Profiler on AWS Lambda
First 500 sampling hours per payer account free · no additional charge beyond 36,000 hours per profiling group per month
Read 8 Oct 2026 · aws.amazon.com
Amazon CodeGuru Profiler on EC2, ECS, EKS, and AWS Fargate
$0.005 per sampling hour for the first 36,000 sampling hours per profiling group per month · no additional charge beyond 36,000 hours
Read 8 Oct 2026 · aws.amazon.com
On the record
- Anomaly detection
- It detects anomalies in application profiles and can send an Amazon SNS notification when a new anomaly is detected if configured.aws.amazon.com · read 8 Oct 2026
- Compliance
- AWS says third-party auditors assess CodeGuru Profiler as part of multiple compliance programs, including SOC, PCI, FedRAMP, and HIPAA.docs.aws.amazon.com · read 8 Oct 2026
- Data collected
- The agent collects stack traces but does not access function parameter names or values, variable values, or application data.docs.aws.amazon.com · read 8 Oct 2026
- Data retention
- The service retains five-minute profiles for 15 days, hourly profiles for 60 days, and daily profiles for three years.docs.aws.amazon.com · read 8 Oct 2026
- Encryption
- Data at rest and in transit are encrypted by default; traffic to the service and downstream dependencies uses TLS.docs.aws.amazon.com · read 8 Oct 2026
- Flame graphs
- It presents CPU and latency analysis in interactive flame graphs to show which code paths consume the most resources.aws.amazon.com · read 8 Oct 2026
- Integration
- The profiling agent can be enabled in JVM applications from the command line or application code and is also used to profile Lambda applications.docs.aws.amazon.com · read 8 Oct 2026
- Language capability limit
- The FAQ says Java and other JVM languages can be profiled for CPU and heap summary, while Python profiling covers CPU wall-clock time.aws.amazon.com · read 8 Oct 2026
- Production profiling
- The profiler is designed to run continuously on production applications with minimal overhead.aws.amazon.com · read 8 Oct 2026
- Purpose
- Amazon CodeGuru Profiler collects runtime performance data from live applications and provides recommendations to improve performance and find CPU bottlenecks.aws.amazon.com · read 8 Oct 2026
- Recommendations
- Machine learning recommendations identify expensive or resource-intensive methods and explain the cause, impact, and possible resolution.aws.amazon.com · read 8 Oct 2026
- Runtime support
- The FAQ lists Java, Python, and JVM languages such as Scala and Kotlin, and says applications can run on EC2, ECS, EKS, Fargate, Lambda, or on premises.aws.amazon.com · read 8 Oct 2026
- Support and permissions
- Using the service requires an AWS account, and IAM permissions control who can create or access CodeGuru Profiler resources.docs.aws.amazon.com · read 8 Oct 2026
The review
Amazon CodeGuru Profiler is a cloud service for sampling performance in live applications, aimed at teams running supported Java, JVM-language, or Python workloads. Its strongest case is continuous production visibility paired with guidance on costly code paths; teams needing non-sampling methods or broader Python metrics should look elsewhere.
Overview
Designed to run continuously with minimal overhead, CodeGuru Profiler helps teams study CPU and latency behavior under production workloads. It requires an AWS account, and IAM permissions determine who can create or access profiler resources. Sampling is the only profiling mode, which makes the service less suitable when a different collection method is required.
The agent collects stack traces, not function parameter names or values, variable values, or application data. Data is encrypted at rest and in transit, and traffic to the service and downstream dependencies uses TLS. AWS says third-party auditors assess CodeGuru Profiler under compliance programs including SOC, PCI, FedRAMP, and HIPAA.
Key features
Interactive flame graphs visualize CPU and latency across code paths, making resource-heavy areas easier to locate than raw profile data alone. Machine-learning recommendations identify expensive methods and explain their cause, impact, and possible resolution. That explanation can help prioritize investigation, but teams still need to decide whether a suggested change suits their application.
Anomaly detection flags changes in application profiles and can send an Amazon SNS notification when configured. This is useful for teams that want profile changes surfaced without continuously watching graphs, though notifications depend on setting up SNS.
Java and other JVM languages support CPU and heap summary profiling; Python 3.6 or later is profiled for CPU wall-clock time. The profiling agent can be enabled in JVM applications from the command line or application code and is also used for Lambda applications. That language difference matters: Python users get a narrower view than JVM users.
Profiles are retained at several resolutions: five-minute profiles for 15 days, hourly profiles for 60 days, and daily profiles for three years. The longer daily history can help with broad trend review, while the short retention of fine-grained profiles limits how far back teams can inspect detailed changes.
Pricing
Pricing is based on sampling hours, with a 90-day free tier and usage charges afterward. The listed starting price is $0.01 per month; actual charges depend on sampling-hour use and the applicable allowance.
| Plan | Price and terms | Best fit |
|---|---|---|
| Amazon CodeGuru Profiler Free Tier | free for 90 days; standard sampling-hour pricing applies after that. | Teams evaluating the service or profiling limited workloads during the trial period. |
| Amazon CodeGuru Profiler on EC2, ECS, EKS, and AWS Fargate | $0.01 a month, billed per sampling hour. The first 36,000 sampling hours per profiling group per month cost $0.005 per hour; no additional charge applies beyond 36,000 hours. | Teams profiling workloads on these compute services, with charges tied to sampling-hour use. |
| Amazon CodeGuru Profiler on AWS Lambda | $0.01 a month. The first 500 sampling hours per payer account are free, then sampling hours cost $0.005 up to 36,000 hours per profiling group per month; no additional charge applies beyond that. | Teams profiling Lambda functions that can use the payer-account allowance. |
The free tier is time-limited rather than a permanent free plan. Both paid options have a 36,000-hour threshold per profiling group per month, while Lambda also has a separate first-500-hours-free allowance per payer account. Teams should account for the difference between those quotas when estimating usage across groups or accounts.
Platforms
The service is cloud-based, with API, Linux, self-hosted, and web platform coverage. Supported applications can run on EC2, ECS, EKS, Fargate, Lambda, or on premises. Its language coverage is focused on Java and JVM languages plus Python 3.6 or later.
Who it's for
CodeGuru Profiler suits teams already using AWS or operating supported applications on premises that want ongoing production CPU and latency analysis, recommendations, and profile anomaly notifications. Its retention periods and JVM heap summaries add value for teams that need historical profile context. It is a weaker fit for Python teams seeking heap analysis, organizations that cannot use sampling, or users who do not want an AWS account and IAM-managed access.
Pros and cons
Pros
- Production-focused sampling: Continuous operation with minimal overhead supports observing application behavior under live workloads.
- Actionable visual analysis: Flame graphs and recommendations connect resource-heavy code paths with potential causes and resolutions.
- Useful profile history: Daily profiles remain available for three years, while finer-grained profile retention supports shorter-term investigation.
- Defined data boundaries: The agent collects stack traces without collecting parameter values, variable values, or application data.
Cons
- Sampling only: Teams that require another profiling method need a different tool.
- Uneven language depth: Python profiling covers CPU wall-clock time, while Java and other JVM languages also get heap summaries.
- Usage-based charges: The trial lasts 90 days, after which sampling-hour pricing applies; Lambda's free allowance is limited to 500 hours per payer account.
- AWS account dependency: Access is governed through AWS IAM, which may not suit teams seeking an independent profiling service.
Alternatives
Valgrind is a free option for Android, Linux, and macOS users who can accept programs running significantly slower and using more memory; it is GPL version 3 and compiled from source.
YourKit .NET Profiler is an alternative for teams looking for .NET profiling; its open-source and free license is aimed at open-source project contributors and Microsoft MVPs.
AMD Auto-Detect and Install Tool is a free Windows utility for systems with supported AMD Radeon graphics or Ryzen chipsets, rather than a general-purpose application profiler.
async-profiler is a free, Apache License 2.0 option with Linux and macOS binaries for readers who want an open-source profiler instead of a cloud service.
Grafana Cloud Application Observability is worth considering for teams seeking a freemium observability option with an always-free tier of 2,232 host hours.
Grafana k6 is a freemium Linux option for teams focused on load testing, with its free plan capped at 500 virtual user hours per month.
Intel VTune Profiler is a free download for Linux, self-hosted, and Windows users who want a standalone tool or Intel oneAPI Toolkit option, with commercial and non-commercial use permitted.
Parca is a free, Apache 2-licensed alternative for teams looking for an open-source profiling stack across API, Linux, self-hosted, and web platforms.
Browse Profiling Software and Continuous Profiling Tools for more options.
Verdict
Choose Amazon CodeGuru Profiler if your team runs supported Java, JVM, or Python workloads and wants continuous production sampling with flame graphs, recommendations, and long-term profile history. Its clearest advantage is turning sampled CPU and latency data into investigation leads; its main drawbacks are sampling-only collection, narrower Python capability, and ongoing usage charges after the 90-day tier. Teams needing another profiling method or richer Python profiling should choose a different tool.