Working with anomalies and recommendation reports - Amazon CodeGuru Profiler

Working with anomalies and recommendation reports

Amazon CodeGuru Profiler continuously analyzes your application profiles in real-time to identify potential performance-impacting issues, and also anomalies in your normal application behavior. Each issue identified during analysis results in creating performance improvement recommendations and anomalies which are then included in the recommendation report. The recommendation report is available in the console summary page. If configured, an Amazon SNS notification will also be sent when a new Anomaly is detected.

Viewing reports

Each report contains performance improvement recommendations and anomalies that describe what anomalies were found, and suggests steps to take to resolve the issue.

To view anomaly reports and recommendations
  1. Sign in to the Amazon CodeGuru console at

  2. In the navigation pane, choose Profiling groups.

  3. Choose the profiling group with recommendations you want to view.

  4. Choose Actions, and then choose View recommendations reports.

  5. In the list of latest reports, choose a report.

  6. (Optional) In the report, under Recommendations, specify a search string to filter results.

  7. (Optional) In the report, at the upper right, choose View all reports to open the list of all reports for the profiling group. Select a report to see its recommendations.

You can view reports generated by CodeGuru Profiler up to 30 days in the past.

To view recommendations from the flame graph window
  • Choose <number> Recommendations next to Actions to open the latest report (<number> is the number of recommendations found for this profiling group in the latest report).

    <number> Recommendations opens the report that contains the current time range for this profiling group.

Understanding performance improvement recommendations

Each performance improvement recommendation explains why CodeGuru Profiler recommends a change in your code. CodeGuru Profiler gives you suggestions on how and where to improve your code.

CodeGuru Profiler calculates an estimated dollar value for the active CPU cost of the discovered efficiency issue. You can use this to understand where your optimization efforts will be most valuable. For more information on estimated dollar values, see Understanding the dollar estimate of the CPU cost for frames .

Understanding anomaly reports

Anomaly reports can help you to avoid outages, latency, and other performance issues by monitoring application metrics with machine learning models.

CodeGuru Profiler detects anomalies when your application performance deviates from past behavior. For example, you can have a CPU time anomaly. This is the time that was spent performing calculations and executing instructions. CPU time anomalies are commonly caused by computationally expensive sections of your code.

Another example of an anomaly is a wall clock time deviation. When making external requests or performing I/O, threads are often waiting for these operations to finish. The wall clock time is the sum of the CPU time and the time a thread was blocked from continuing its execution. You can find a list of generated anomalies in your hourly recommendations report. CodeGuru Profiler takes up to 36 hours to generate the first anomaly report.

Each anomaly includes the following information:

  • Frame name – The frame name provides a brief description of the anomaly. Each title displays the package name, followed by the function name.

  • Why did CodeGuru Profiler trigger this anomaly? – This section describes why the anomaly was triggered.

  • Graph – Displays the percentage that represents how frequently this frame occurs, spanning the time the report is requested for. Anomalies are highlighted in red.

  • Show anomalies in inspect view – Choose this link to go back to the flame graph and see an overview visualization for the given frame name.

  • Did this anomaly identify an issue? – Submit feedback by choosing thumbs up or thumbs down on an anomaly report. Providing feedback improves the quality of the generated anomalies.

Image: Anomaly report example

You can set up Amazon SNS notifications to let you know when CodeGuru Profiler generates new anomaly reports. For information about creating and subscribing to an SNS topic, see Getting started with Amazon SNS.

To set up notifications for anomaly detection
  1. On the Profiling groups page, choose Edit profiling group.

  2. Choose the Notifications tab. Choose from your account's existing SNS topics. This is where you will receive notifications.