---
title: APM Recommendations
description: >-
  Learn how to optimize your application's performance and reliability with APM
  Recommendations.
breadcrumbs: Docs > APM > APM Recommendations
---

# APM Recommendations

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md). ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}

{% /callout %}

APM Recommendations help you improve your applications' performance and reliability by surfacing optimization opportunities from your collected telemetry. These recommendations are designed to:

- Identify and resolve performance bottlenecks
- Improve service reliability and uptime
- Improve end-user experience

{% image
   source="https://docs.dd-static.net/images/tracing/recommendations/apm_recommendations-3.373ac71c44b19daaf8da27b6be7ee0c7.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/recommendations/apm_recommendations-3.373ac71c44b19daaf8da27b6be7ee0c7.png?auto=format&fit=max&w=850&dpr=2 2x"
   alt="APM Recommendations page with summary cards for reliability and performance issues and a list of recommendations to review" /%}

{% callout %}
##### Join the AI Recommendations Preview!

AI-driven recommendation types are now available, expanding the set of optimization opportunities Datadog can detect.

[Request Access](https://www.datadoghq.com/product-preview/apm-ai-recommendations/)
{% /callout %}

## Prerequisites{% #prerequisites %}

Certain recommendations rely on specific Datadog products. Use the **Recommendation Prerequisite** dropdown to filter recommendations by the Datadog products in your setup.

If you plan to use [Bits Code](https://docs.datadoghq.com/bits_ai/bits_ai_dev_agent.md) to implement recommendations, you must [complete its setup](https://docs.datadoghq.com/bits_ai/bits_ai_dev_agent/setup.md).

## How it works{% #how-it-works %}

Recommendations are based on data collected from different parts of your stack:

- Distributed traces from Application Performance Monitoring (APM)
- Database telemetry from Database Monitoring (DBM)
- Sessions and user journeys from Real User Monitoring (RUM)

Datadog correlates these sources to identify opportunities to improve performance, reliability, and user experience.

Datadog ranks recommendations by computing a priority score that weighs the potential impact of an issue against telemetry signals, such as relative request volume and performance trends. The most critical insights for improving service reliability and performance appear first.

## Using recommendations{% #using-recommendations %}

To review recommendations that need your attention:

1. Go to [**APM** > **Recommendations**](https://app.datadoghq.com/apm/recommendations).
1. Filter your recommendations by status or type.
1. Select a recommendation from the list to see a detailed description of the issue.
1. Review the problem, impact, and Datadog's recommendation for resolving it.
1. (Optional) To use [Bits Code](https://docs.datadoghq.com/bits_ai/bits_ai_dev_agent.md) to generate a code fix, under **Next Steps**, click **Fix with Bits**.
1. (Optional) To track the fix in Jira or Case Management, under **Triage**, click **Add Jira Ticket** or **Add Case**.

After you've reviewed the recommendation, you can use the **FOR REVIEW** dropdown to change the recommendation status to **REVIEWED**, **IGNORED**, or **RESOLVED**.

## Supported recommendations{% #supported-recommendations %}

| Recommendation Category | Recommendation Type           | Scope of Recommendation | Recommendation Description                                                                                                                                                                                                    | Recommendation Prerequisite |
| ----------------------- | ----------------------------- | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| Performance             | N+1 Queries on Database       | Backend services        | A backend application calls the same database sequentially instead of batching queries.                                                                                                                                       | APM                         |
| Performance             | Repeated Sequential API calls | Backend services        | A backend application makes multiple calls to the same downstream API sequentially instead of executing them in parallel, unnecessarily increasing request latency and slowing overall service performance.                   | APM                         |
| Performance             | Persistent Retries            | Backend services        | A backend application issues an excessive number of retry attempts when calling a downstream API, extending request duration and risking cascading failures under strain.                                                     | APM                         |
| Performance             | Missing index                 | Databases               | The query's execution plan performs expensive sequential scans. When detected, Datadog recommends using an index to expedite the query.                                                                                       | APM + DBM                   |
| Performance             | Unbalanced Read Load          | Databases               | A service is making read-only queries to a primary database instance when replicas are available. Routing these queries to replicas can reduce primary load and improve performance.                                          | APM + DBM                   |
| Reliability             | Aggressive Retries            | Backend services        | A backend application triggers rapid-fire retry attempts without adequate backoff, sustaining high pressure on struggling dependencies and risking prolonged outages by preventing system recovery during transient failures. | APM                         |
| Reliability             | High Exception Volumes        | Backend services        | A backend application is throwing a high number of exceptions as control-flow, adding CPU and memory overhead.                                                                                                                | APM + Continuous Profiler   |
| Reliability             | Dependency Timeouts           | Backend services        | A backend application times out while calling a downstream dependency because the dependency responds too slowly, causing request failures that impact end users and increase the risk of cascading failures upstream.        | APM + RUM                   |
| Performance             | Missing Cache                 | Backend services        | A service performs expensive, repeated work on the request path that could be served from a short-lived cache, reducing tail latency and downstream load.                                                                     | APM + AI Recs (Preview)     |
| Performance             | Tail Latency                  | Backend services        | A service exhibits extreme tail latency driven by slow downstream spans on the critical path, often from unbounded dependency latency or sequential calls that could run concurrently.                                        | APM + AI Recs (Preview)     |
| Performance             | Excessive Serialization       | Backend services        | A service spends a significant share of request time on CPU-bound serialization or parsing work, adding avoidable latency and CPU overhead.                                                                                   | APM + AI Recs (Preview)     |
| Performance             | Unbounded Payload             | Backend services        | A service accepts request parameters without size or range bounds, allowing oversized inputs to drive expensive downstream work, tail latency, and timeouts.                                                                  | APM + AI Recs (Preview)     |
| Performance             | Resource Contention           | Backend services        | Request handling is serialized behind a synchronization primitive or long-running critical section, causing tail latency under concurrency.                                                                                   | APM + AI Recs (Preview)     |
| Reliability             | Connection Pool Exhaustion    | Backend services        | A service repeatedly exhausts its connection pool to a downstream dependency, queueing requests and causing latency spikes or failures under load.                                                                            | APM + AI Recs (Preview)     |
| Reliability             | Error Misclassification       | Backend services        | A service surfaces expected outcomes as errors in APM, inflating endpoint error rates and obscuring real reliability regressions.                                                                                             | APM + AI Recs (Preview)     |
Recommendation CategoryAll Performance ReliabilityRecommendation TypeAll Aggressive Retries Connection Pool Exhaustion Dependency Timeouts Error Misclassification Excessive Serialization High Exception Volumes Missing Cache Missing index N+1 Queries on Database Persistent Retries Repeated Sequential API calls Resource Contention Tail Latency Unbalanced Read Load Unbounded PayloadScope of RecommendationAll Backend services DatabasesRecommendation PrerequisiteAll APM APM + AI Recs (Preview) APM + Continuous Profiler APM + DBM APM + RUM
**Note**: If you use both APM and Database Monitoring (DBM), you may see fewer Missing Index recommendations here than on the [DBM Recommendations page](https://docs.datadoghq.com/database_monitoring/recommendations.md). APM Recommendations only surface Missing Index issues that Datadog can associate with an instrumented application service. Missing Index recommendations that cannot be linked to a specific service appear only in DBM.

## Further reading{% #further-reading %}

- [Learn about Application Performance Monitoring (APM)](https://docs.datadoghq.com/tracing.md)
- [APM Dashboard Guide](https://docs.datadoghq.com/tracing/guide/apm_dashboard.md)
- [Cloud Cost Recommendations](https://docs.datadoghq.com/cloud_cost_management/recommendations.md)
- [DBM Recommendations](https://docs.datadoghq.com/database_monitoring/recommendations.md)
- [Improve performance and reliability with Proactive App Recommendations](https://www.datadoghq.com/blog/proactive-app-recommendations/)
- [Improve performance and reliability with APM Recommendations](https://www.datadoghq.com/blog/apm-recommendations)
