Amazon CodeGuru (Preview)

Automate code reviews
Identify your most expensive lines of code

Amazon CodeGuru is a machine learning service for automated code reviews and application performance recommendations. It helps you find the most expensive lines of code that hurt application performance and keep you up all night troubleshooting, then gives you specific recommendations to fix or improve your code. CodeGuru is powered by machine learning, best practices, and hard-learned lessons across millions of code reviews and thousands of applications profiled on open source projects and internally at Amazon. With CodeGuru, you can find and fix code issues such as resource leaks, potential concurrency race conditions, and wasted CPU cycles. And with low, on-demand pricing, it is inexpensive enough to use for every code review and application you run. CodeGuru supports Java applications today, with support for more languages coming soon. CodeGuru helps you catch problems faster and earlier, so you can build and run better software.

Trained on decades of knowledge and experience

CodeGuru’s machine learning models are trained on Amazon’s code bases comprising hundreds of thousands of internal projects, as well as over 10,000 open source projects in GitHub. Tens of thousands of Amazon developers have contributed to CodeGuru’s training based on decades of experience in code review and application profiling. For example, CodeGuru Reviewer is trained using rule mining and supervised machine learning models that use a combination of logistic regression and neural networks. During training to detect deviation from best practices, it mines Amazon code bases for pull requests that include AWS API calls. It looks at code changes and cross-references them against documentation data, which it also mines in parallel. This creates new models for best practices that Reviewer uses when it reviews your code to provide recommendations. CodeGuru Profiler is also trained by Amazon performance engineers and used to profile tens of thousands of services used internally at Amazon. You can decide whether to accept each recommendation CodeGuru offers – the more feedback you give it, the better its recommendations get.

Find your most expensive lines of code

CodeGuru Profiler is always searching for application performance optimizations, identifying your most “expensive” lines of code and recommending ways to fix them to reduce CPU utilization, cut compute costs, and improve application performance. CodeGuru Profiler provides specific recommendations so you can take action immediately on issues such as excessive recreation of expensive objects, expensive deserialization, usage of inefficient libraries, and excessive logging. CodeGuru Profiler runs continuously in production, consuming minimal CPU capacity so it does not significantly impact application performance. You can begin profiling your application by installing a small agent using code that CodeGuru provides and configuring it in the CodeGuru console.

 Click to enlarge

When it sees opportunities to optimize application performance, Amazon CodeGuru Profiler explains why it is recommending a change, what’s causing the issue, how to resolve it, and where in the code this issue is impacting your application.

Screenshot_Catch-Code-Issue_2 - Annotations LP
 Click to enlarge

Amazon CodeGuru Reviewer scans your pull requests and gives you recommendations against your source code in Github or AWS CodeCommit, together with a description of what’s causing the issue and how you can remediate it.

Catch the code issue today – don't wait to get paged

CodeGuru Reviewer looks for the things that keep you awake at night, and recommends how to remediate them. It detects deviation from best practices for using AWS APIs and SDKs, flagging common issues that can lead to production issues, such as detection of missing pagination or error handling with batch operations. It detects concurrency issues such as atomicity violations and the use of classes that are not thread-safe, which are difficult to find even for experienced programmers. It detects when resources are incorrectly closed, creating latency issues and outages. It also identifies correct input validation, where un-sanitized inputs can lead to issues such as injection attacks or denial of service. You can associate existing code repositories on GitHub or AWS CodeCommit with CodeGuru to begin reviewing code.

Screenshot_Catch-Code-Issue_2 - Annotations LP

Inexpensive enough to use for every code review and application

CodeGuru is inexpensive enough to use for every code review and application you run. It has simple, pay-as-you-go monthly pricing based on the number of lines of code reviewed and sampling hours per application profile. For example, if you have a typical pull request with 500 lines of code, it would only cost $3.75 to run CodeGuru Reviewer on it. Try it for free for the first 90 days. After that, CodeGuru costs $0.005 per sampling hour per application profile and $0.75 per 100 lines of code per month. See pricing »

$10s of millions

in cost savings realized through use of CodeGuru at Amazon

What developers say about Amazon CodeGuru

Check out the product features

Visit the features page.

Learn more 
Sign up for a free account

Instantly get access to the AWS Free Tier. 

Sign up 
Start building in the console

Get started building with Amazon CodeGuru in the AWS Management Console.

Sign in