developer-tools

Amazon CodeGuru

Amazon CodeGuru is two tools under one brand — a legacy code Reviewer and an actively-supported runtime Profiler. Here's what each half does in 2026, what it costs, how it connects to the rest of your AWS architecture, and the mistakes Design Beaver catches as you draw.

Updated July 14, 2026

What CodeGuru is

Amazon CodeGuru is really two tools that share a brand. CodeGuru Reviewer uses program analysis plus machine learning to comment on your Java or Python code — on pull requests, or as a one-off scan of a whole repository — flagging resource leaks, concurrency bugs, and AWS/Java/Python best-practice violations that are easy to miss in a human review. CodeGuru Profiler watches your application while it runs: a lightweight agent samples where the code actually spends CPU and wall-clock time, ships those samples to a profiling group, and points at the most expensive methods, often with cost-framed recommendations.

In 2026, CodeGuru has been substantially wound down. Reviewer stopped accepting new repository associations on 2025-11-07, and CodeGuru Security reached end of support on 2025-11-20 — its scanning folded into Amazon Q Developer and Amazon Inspector Code Security. Profiler is the half that’s still supported. Design Beaver models CodeGuru as an external, regional service, so it validates each half’s connections and the IAM they need as you draw — and steers a new design away from the legacy halves.

When to use CodeGuru (and when not to)

Reach for CodeGuru Profiler when you run a long-lived JVM or Python service — on Lambda, ECS, EC2, EKS, or Fargate — and want always-on, low-overhead production profiling to chase CPU and latency hot spots. That’s Profiler’s core use, and it’s still supported. Keeping an existing Reviewer repository association from before 2025-11-07 is fine too; the automated PR feedback you already configured keeps working.

Don’t reach for CodeGuru to set up new automated code review — Reviewer won’t take new repos, so use Amazon Q Developer’s code review or Amazon Inspector instead. Don’t use it for security scanning of source; that was CodeGuru Security, now end-of-support. Both halves are limited to Java/JVM and Python, so a Go, Node, .NET, or Rust service gets nothing. And CodeGuru never builds or deploys — that’s CodeBuild, CodeDeploy, and CodePipeline. CodeGuru only reviews and profiles.

Variants: two separate products, not tiers

CodeGuru isn’t tiers you choose between — it’s two distinct offerings under one brand, and one of them is legacy while the other is the forward-looking half.

OptionWhat it is
CodeGuru Reviewer (static code review — legacy)Program-analysis + ML review of Java and Python source. Associates with a repository (CodeCommit, Bitbucket, GitHub Enterprise Server, or an S3 source bundle) and comments on pull requests, plus on-demand full-repo scans. As of 2025-11-07 no NEW repository associations can be created; existing ones keep working. Treat as legacy — Amazon Q Developer / Amazon Inspector are the forward path.
CodeGuru Profiler (runtime profiling — active)defaultA low-overhead agent runs alongside your application (JVM languages and Python 3.6+), samples call stacks, and submits aggregated profiles to a profiling group in the CodeGuru Profiler service, which renders visualizations and cost/efficiency recommendations. Supported on EC2, ECS, EKS, Fargate, and Lambda. This is the actively-supported half of CodeGuru in 2026.

CodeGuru pricing in plain English

The two halves bill on different meters, and both should be treated as rough intuition rather than a billing source — verify against the live pricing page before quoting numbers.

The two halves priced differently. CodeGuru Profiler bills per profiling hour submitted to a profiling group (with a per-group monthly free-tier allowance of sampling hours); overhead and cost are meant to stay low for always-on profiling. CodeGuru Reviewer historically priced per lines of code analyzed per month (a full-repo scan charge plus incremental PR scans) — but since it no longer takes new repository associations, its pricing is largely moot for new customers.

OptionRepresentative rate
profilerRoughly a small fraction of a cent per profiling-hour after a monthly free allotment of sampling hours per profiling group.
reviewerHistorically billed per 100K lines of code per month after a free tier; largely moot since no new repository associations are accepted after 2025-11-07.

us-east-1 (rates vary by region). Rates as of 2026-07. Verify at aws.amazon.com/codeguru/profiler/pricing/ before using for real estimates. Reviewer pricing is effectively legacy; CodeGuru Security is end-of-support and no longer billable.

How CodeGuru connects to other services

CodeGuru’s two halves connect to completely different parts of your architecture — Reviewer reaches into source repositories, while Profiler receives telemetry from running compute. The direction and the IAM on each edge are where the real work hides, so Design Beaver models them rather than letting you draw a plausible-looking arrow that wouldn’t function.

  • CodeGuru Reviewer is associated with a CodeCommit repository and automatically reviews pull requests (and on-demand full-repository scans), posting recommendations as comments

  • A CodeBuild action runs a CodeGuru Reviewer analysis as part of a build — CodeBuild provides the full clone (including Git metadata) that Reviewer needs for pipeline-context analysis

  • A CodePipeline pipeline includes a CodeGuru Reviewer analysis stage (typically run via a CodeBuild action) and gates promotion of the code to preproduction/production on the outcome

  • A Lambda function is onboarded to CodeGuru Profiler — the bundled profiling agent samples the function's runtime and submits profiles so you can see the most CPU-expensive code paths

  • EC2

    A JVM or Python application running on an EC2 instance runs the CodeGuru Profiler agent, which samples the process and submits profiles to a profiling group for CPU/latency analysis

  • ECS

    A containerized JVM/Python app running as an ECS task (EC2 or Fargate launch type) runs the CodeGuru Profiler agent and submits profiles to a profiling group

One detail worth calling out: for Profiler, the permission lives on the compute, not on CodeGuru. The agent runs inside your process, so it’s the Lambda execution role, EC2 instance profile, or ECS task role that must carry the codeguru-profiler:* actions. Design Beaver models that IAM requirement on the compute node’s edge toward CodeGuru — which is exactly where forgetting it leaves you with “profiling enabled, no data showing up.”

What CodeGuru can’t connect to

Chaining the whole Code* suite into one line is a common instinct, but some of those edges don’t exist. Design Beaver flags them instead of letting you draw a diagram that can’t be built.

  • CodeGuru does not deploy anything — it reviews source (Reviewer) and profiles running code (Profiler). Deployment is CodeDeploy's job. Wiring the whole Code* suite together as one chain is a common mistake, but there is no CodeGuru-to-CodeDeploy edge: CodeGuru produces recommendations and profiles, not deployable artifacts or deployment triggers.

  • CodeGuru is never in an application's data path. It doesn't read or write application databases — Reviewer analyzes source text and Profiler ingests runtime profile samples. A CodeGuru-to-DynamoDB connection has no meaning; the database access belongs to your application code, which CodeGuru only reviews or profiles.

Anti-patterns Design Beaver catches

These are the CodeGuru mistakes that pass a diagram review but don’t hold up — the ones the validation engine flags as you draw.

Planning new automated code review or code security scanning around CodeGuru Reviewer or CodeGuru Security in 2026

Why it breaksCodeGuru Reviewer stopped accepting new repository associations on 2025-11-07, and CodeGuru Security reached end of support on 2025-11-20 (its console, resources, and historical findings become inaccessible, with no migration path). Building new work on either is building on a wound-down service.

Do this insteadUse Amazon Q Developer (SAST, secrets detection, dependency/SCA scanning, code-quality review in the IDE and in GitHub/GitLab) and/or Amazon Inspector Code Security (repository vulnerability and exposure scanning) for new code review and code security.

Treating CodeGuru Profiler as a full APM / distributed tracing tool

Why it breaksProfiler samples CPU/wall-clock at the code-method level to find expensive lines and bottlenecks — it is not request tracing, service maps, or error tracking. Reading it as end-to-end APM leads to gaps in what you can actually diagnose.

Do this insteadPair Profiler with AWS X-Ray (distributed traces / service map) and CloudWatch (metrics/alarms/logs); use each for what it does rather than expecting profiling to cover tracing.

Expecting CodeGuru to cover a non-Java/non-Python codebase

Why it breaksBoth halves are limited — Reviewer to Java and Python source, Profiler to JVM languages and Python runtimes. A Go/Node/.NET/Rust service gets nothing, so a CodeGuru node on such a workload is decorative.

Do this insteadFor unsupported languages, use language-appropriate linters/profilers and Amazon Q Developer / Amazon Inspector where they support the stack.

Gotchas that bite in production

  • This is a wound-down service. The biggest surprise is that you can’t start Reviewer on a new repo (cutoff 2025-11-07), and CodeGuru Security is gone entirely (end-of-support 2025-11-20, no data migration). If a design leans on either for new work, redirect it to Amazon Q Developer or Amazon Inspector.
  • Java and Python only — both halves. It’s easy to draw CodeGuru against a Node or Go service and assume it’ll help. It won’t, and the node is just decoration.
  • Profiler is not APM. It samples code-method CPU and wall-clock time to find expensive lines. It is not distributed tracing, service maps, or error tracking — pair it with X-Ray and CloudWatch for those.
  • The profiling permission lives on the compute, not on CodeGuru. The agent runs in your process, so it’s your function, instance, or task role that needs the codeguru-profiler:* actions. That’s the usual reason profiling is “on” but no profiles appear.
  • Reviewer’s pipeline integration needs a CodeBuild full clone. Running the analysis in a CodeBuild action requires a full clone with Git metadata for pipeline-context analysis — a plain zip artifact isn’t enough.

Further reading

Frequently asked questions

Is Amazon CodeGuru still supported in 2026?
Partly. CodeGuru Profiler is still actively supported. CodeGuru Reviewer stopped accepting new repository associations on 2025-11-07 — existing ones keep working, but you can't set up review on a new repo. CodeGuru Security reached end of support on 2025-11-20; its SAST, secrets, dependency (SCA), and code-quality scanning have folded into Amazon Q Developer and Amazon Inspector Code Security, which AWS now points customers to.
When should you use CodeGuru Profiler?
Use Profiler when you run a long-lived JVM or Python service — on Lambda, ECS, EC2, EKS, or Fargate — and want always-on, low-overhead production profiling to find CPU hot spots and cut compute cost. It's the still-supported half of CodeGuru, and it's a poor fit for anything that isn't a JVM or Python runtime.
What replaced CodeGuru Reviewer and CodeGuru Security?
For new automated code review and code security scanning, AWS points you at Amazon Q Developer (SAST, secrets detection, dependency/SCA scanning, code-quality review in the IDE and in GitHub/GitLab) and Amazon Inspector Code Security (repository vulnerability and exposure scanning). Don't design new work around Reviewer or Security.
Can CodeGuru profile a Node.js or Go service?
No. Both halves of CodeGuru are limited to Java/JVM and Python — Reviewer analyzes Java and Python source, and Profiler supports JVM-language and Python runtimes. A Go, Node, .NET, or Rust service gets nothing from CodeGuru, and Design Beaver flags a CodeGuru node on such a workload as decorative.

Validate your CodeGuru architecture as you draw

Design Beaver checks your AWS design in real time — missing queues, invalid connections, and security anti-patterns, caught before you ship. It’s live in beta, free, and runs in your browser with no account.

Open the app →

Prefer email? Get new features in your inbox:

← All supported services