Datadog · Continuous Profiler

Continuous Profiler: find the function that uses the CPU and memory in production

A continuous profiler records, all the time and in production, which functions in your code use the CPU, allocate memory, wait on locks or throw exceptions. When a service slows down or its memory keeps growing, the answer is already recorded, with no restart and no debugger. Datadog Continuous Profiler does this inside the same tracer that sends your APM traces. Interkey is an official Datadog partner in Saudi Arabia: we sell the licences, switch profiling on per service, and provide technical support from Riyadh.

In short

  • What it answers: which method, class and line used the CPU, memory or time, in production and over time.
  • How it runs: it is switched on in the Datadog tracer your services already load for APM, and its profiles link to your traces.
  • What Interkey does: licences, set-up per service, version comparisons, memory investigations, dashboards and technical support. The Datadog APM page covers tracing, retention and billing.

At a glance: what Datadog Continuous Profiler records

The table summarises the profile types Datadog documents as of 11 November 2026. Some depend on runtime or tracer version; we check them against your estate.

Datadog Continuous Profiler profile types and the question each one answers
Profile typeWhat it showsLanguages Datadog lists it forThe question it answers
CPUTime each function spends running on the CPUJava, .NET, PHP, Python, Go, Ruby, Node.js, C, C++ and RustWhich code burns the CPU we pay for?
Wall timeElapsed time per function, including waitingJava, .NET, PHP, Python, Ruby, Node.jsWhere does a slow request spend its time?
Allocations and allocated memoryHow many objects, and how many bytes, each function allocatesJava, .NET, PHP, Python, Go, Ruby, C, C++ and Rust (Node.js in Preview)Which code creates the garbage the collector has to clear?
Live heapMemory still held, by the code that allocated itJava, .NET, Python, Go, Node.js (Ruby in Preview)What keeps growing between two points in time?
LockTime spent waiting for, or holding, locksJava, .NET, Python, Go (mutex and block)Which threads block each other under load?
Thrown exceptionsExceptions thrown, by the code that throws themJava, .NET, PHPWhich code throws and catches errors in a loop?
File and socket I/OTime spent reading and writing files and socketsJava (PHP in Preview)Is the code waiting on disk or on the network?

What code profiling in production has to do

In Saudi banks, telcos and government entities, the hardest performance problems appear only in production: a service that uses more CPU after a release, a portal that slows at month-end payroll, a container restarted every few days because its memory keeps growing. Test environments rarely show them, and restarting a busy service to investigate is rarely allowed.

Code profiling in production therefore has to meet four conditions. It runs all the time, so last night's incident is already recorded. It is light enough to leave on. It shows the exact function and line, not only the service. And it compares one period, version or host with another, because the question is usually "what changed".

How Datadog Continuous Profiler works

One library, one setting. Datadog Continuous Profiler is part of the Datadog tracing library for each language. In Java, for example, the same dd-java-agent.jar that sends APM traces collects profiles once -Ddd.profiling.enabled=true or DD_PROFILING_ENABLED=true is set; in PHP the datadog-setup.php installer adds it with --enable-profiling. The setting is read at start-up, so the service is restarted once, in a normal deployment. From then on profiles are collected continuously, with no further restarts. Datadog states that it is built to run in production with minimal impact on CPU and memory.

Read more

Languages. Datadog lists Java (including GraalVM native image, in Preview), .NET, PHP, Python, Go, Ruby, Node.js, Rust, C and C++. Each has its own minimum runtime and tracer versions. Our APM set-up page for Java, .NET, PHP and Node.js explains how each tracer is attached.

What is kept. Datadog keeps flame graphs, call graphs and thread timelines for eight days by default and profile metrics for one month. A flame graph saved to a notebook is kept for a year, which keeps the evidence of an incident review.

CPU profiling linked to traces: from a slow request to the line of code

Datadog states that application processes running both APM distributed tracing and Continuous Profiler are linked automatically. An engineer opens a slow span, then its Profiles tab, and sees which methods ran on each thread during that request. "Open in Profiling" shows the same data as a flame graph, narrowed to the span and its children. Our distributed tracing page covers following a request across services; the profiler is the next step, inside one service.

Read more

Endpoint profiling. Datadog can also group profiles by web endpoint, so you see which endpoints use the most CPU, memory or exceptions, and how CPU per request moves over time. A regression then shows as a rising line on one endpoint, not a vague rise in host CPU.

Comparing profiles. Datadog's comparison view sets two profiles side by side, scoped by time frame or by tags such as version and env. With unified service tagging in your CI/CD pipeline, "this release against the previous one" is one comparison, not a week of guesswork.

Memory leak detection and investigation

A memory leak usually shows as container memory that climbs until a restart. Datadog provides a guided investigation for this on the APM service page, under a Memory Leaks tab: it narrows the data, names the integrations or upgrades needed, and explains how that runtime manages memory.

Read more

Datadog lists the conditions: a containerised service with the Kubernetes or container integration, Continuous Profiler switched on, and profiles tagged with container_id so that they can be matched to container memory metrics. For Java and .NET, heap profiling must also be enabled. The last step, in Datadog's words, is to confirm potential leaks by inspecting retained objects with profile comparisons. The profiler does not fix the leak; it shows which code holds the memory.

Where Saudi teams use it

  • CPU cost after a release. Compare the new version with the previous one on the same endpoint and see the function that changed.
  • Peak days. Month-end payroll or a Ramadan campaign: wall time and lock profiles show where requests wait as traffic rises.
  • Garbage collection pressure. Allocation profiles show the code that creates short-lived objects; in .NET Datadog also records garbage collector CPU use.
  • Exceptions in a loop. The exception profile shows code that throws and catches errors silently, costing CPU without showing in error rates.

Where it fits, and where it does not

The profiler explains what your own code does inside a process. It does not show a slow query plan: query plans and database wait time belong to Database Monitoring. It does not show what a user's browser experiences, and it does not replace load testing. For Java, Datadog states that serverless platforms are not supported; we say so in the plan, before licences are bought.

How a Continuous Profiler rollout runs with Interkey

  1. Choose the services.

    Those where CPU cost, latency or memory growth matter most.

  2. Check versions.

    Runtime and tracer versions against Datadog's current lists, per language and per profile type.

  3. Quote the licences.

    APM hosts and the tier that includes profiling, quoted with set-up and support.

  4. Switch profiling on in one service.

    In a test environment first, then in production in a normal deployment, with tags checked.

  5. Link traces and endpoints.

    Confirm that spans open their profiles and that endpoint profiling works per service.

  6. Set up comparisons and dashboards.

    Release-to-release comparisons, CPU per endpoint, memory views per container.

  7. Operate or hand over.

    Interkey operates the platform from Riyadh, or hands it over with documentation and stays on as technical support.

Data residency, cost and timeline

Profiles carry function, file and thread names and your tags, and link to traces that can hold URLs and SQL. As of November 2026 Datadog lists no site in the Middle East, so profiling data is stored outside the Kingdom. Interkey agrees with your security team which tags are allowed before profiling starts. Our Datadog data residency guide covers the wider question. Support comes from Interkey's engineers in Riyadh, in Arabic and English.

Read more

Datadog bills APM per APM host, and APM Enterprise is the tier that includes Continuous Profiler. Cost follows the hosts you profile and the tier. Our Datadog pricing guide sets out how each unit is billed, and Interkey quotes the licences with set-up and support.

The timeline is an estimate, not a promise. Where APM already runs, switching profiling on for a first service usually takes days, set by the next deployment window. A wider estate typically takes a few weeks, depending on the number of services, older runtime versions and how often change windows open.

Questions buyers ask

Does Datadog Continuous Profiler need code changes or repeated restarts?

No code changes for the standard profile types. Profiling is switched on in the Datadog tracer with one setting, read at start-up, so each service restarts once in a normal deployment. After that, profiles are collected continuously.

Which programming languages can Datadog Continuous Profiler profile?

Datadog lists Java, .NET, PHP, Python, Go, Ruby, Node.js, Rust, C and C++. The profile types differ by language and version, and some are in Preview; Interkey checks them against your services first.

Can the profiler help us find a memory leak in a Java or .NET container?

Yes. Datadog's Memory Leaks investigation uses heap profiles, container memory metrics and profile comparisons to show which code holds memory. For Java and .NET, heap profiling must be enabled.

Is profiling included in our Datadog APM licence in Saudi Arabia?

Datadog includes Continuous Profiler in the APM Enterprise tier, billed per APM host. Interkey sells Datadog licences in Saudi Arabia and quotes the tier, set-up and support together.

Does profiling data from our servers in the Kingdom leave KSA?

Yes. As of November 2026 Datadog lists no Middle East site. Interkey agrees with your security team what profiles and tags are sent before profiling is switched on.

How long does it take to add continuous profiling to services we already trace?

A first service usually takes days, set by your next deployment window. A wider estate typically takes a few weeks, depending on service count, runtime versions and change windows.

Next step

Plan continuous profiling for your services

Tell us which services worry you (CPU cost, latency, memory growth), their languages and where they run, and whether Datadog APM is in use. We check versions and quote licences, set-up and support together.

Required field

By sending this form, you agree to our Privacy Notice.

Or directly

+966-11-2180999 [email protected]

Tawuniya Towers, North Tower, 7th Floor, King Fahad Highway, Olaya, P.O. Box 56835, Riyadh 11564, Saudi Arabia

or See the profile types

Published by Interkey. Last updated . Interkey is registered in Riyadh, Saudi Arabia under commercial registration 1010156897.