Datadog Application Performance Monitoring (APM or tracing) provides you with deep insight into your application’s performance - from automatically generated dashboards for monitoring key metrics, like request volume and latency, to detailed traces of individual requests - side by side with your logs and infrastructure monitoring. This documentation covers Agent v6 only, for more information on setting up APM tracing with Agent v5, see the APM with Agent v5 doc.
Tracing allows you to see a single request moving across your system and infrastructure, and it gives you systematic data about precisely what is happening to this request. This gives you better insight into your systems interdependencies, it allows you to see where requests are taking the longest, it gives you visual cues for accurately troubleshooting outages and other system issues, and it allows you to see detailed traces of individual requests-side by side with your logs and infrastructure monitoring.
The application code instrumentation sends traces to the Agent every second. The Agent then calculates performance metrics over all traces and send those metrics along with a sample of traces to Datadog every 10 seconds. To get APM up, running, and reporting data from your application, follow these steps:
Enable Trace collection in the Datadog Agent:
Install and configure the latest Datadog Agent. (On macOS, install and run the Trace Agent in addition to the Datadog Agent. See the macOS Trace Agent documentation for more information). APM is enabled by default in Agent 6, however there are additional configurations to be set in a containerized environment including setting
apm_non_local_traffic: true. To get an overview of all the possible settings for APM including setting up APM in containerized environments such as Docker or Kubernetes, get started Sending traces to Datadog.
Instrument your application to send traces to your Datadog Agent: Datadog has libraries to support configuring your application in several different languages and containers. For more information about specific languages and containers, see Application Tracing Setup.
Additional helpful documentation, links, and articles: