Datadog APM · Java, .NET, PHP, Node.js
Application performance monitoring: Java, .NET, PHP and Node.js applications in Datadog
Application performance monitoring for Java, .NET, PHP and Node.js starts the same way in every stack: a Datadog tracer runs inside the application process and sends each request as a trace. What differs is how that tracer is attached, which frameworks it understands, and what tends to go wrong on the first day. This page sets out those differences. Interkey is an official Datadog partner in Saudi Arabia: we sell the licences, instrument each stack, and provide technical support from Riyadh.
In short
- One product, four tracers: Datadog APM uses a separate tracer for each language, attached at start-up. The traces they send look the same in Datadog.
- How each is attached: a Java agent file for the JVM, an installer and environment variables for .NET, an extension for PHP, and the dd-trace package for Node.js.
- What Interkey does: licences, instrumentation per stack, one tagging standard, dashboards, alerts and technical support. The Datadog APM page covers the product itself: retention, sampling, masking and billing.
At a glance: how Datadog APM attaches to each stack
The table summarises what Datadog documents for each language as of 10 November 2026. We check the lists against your estate before rollout.
| Stack | How the tracer is attached | Frameworks Datadog lists | Watch on day one |
|---|---|---|---|
| Java and Spring Boot | dd-java-agent.jar passed with -javaagent, before -jar | Spring Boot 1.5 to 3.x, Spring MVC and WebFlux, Servlet, Tomcat, Jetty, JDBC, Kafka clients | Never put the agent on the classpath |
| .NET and ASP.NET Core | MSI on Windows, a package on Linux, or the Datadog.Trace.Bundle NuGet package | ASP.NET Core, HttpClient, SQL Server client, ADO.NET | Set the profiling variables per application, never machine-wide |
| .NET Framework | MSI on the Windows server | ASP.NET and Web Forms, ASP.NET MVC, Web API 2, WCF | App pool set to "No Managed Code"; full IIS restart |
| PHP and Laravel | datadog-setup.php adds the extension to each PHP binary | Laravel, Laravel Queues, Symfony, WordPress | Restart PHP-FPM or Apache after install and upgrades |
| Node.js | The dd-trace package, loaded with --require dd-trace/init | Express, Fastify, frameworks built on Express | Load the tracer before any other module |
Why the set-up differs by language
In banks, telcos and government entities in Saudi Arabia, one customer journey often crosses several stacks: a Spring Boot core service, an ASP.NET portal that has run on IIS for years, a Laravel site for a campaign, and a Node.js API in front of the mobile app. A trace is only useful if it crosses all of them without a gap.
Read more
Each Datadog tracer works inside its own runtime: the JVM, the .NET CLR, the PHP interpreter or Node.js. That is why the start-up step, the restart rules and the supported frameworks differ, and why a rollout plan has one line per stack. Once the tracers run, Datadog passes trace context between them in HTTP headers and message headers, so a request from the Node.js API to the Java service and on to the database appears as one trace. Our distributed tracing page explains how that context is carried.
Relateddistributed tracing page
Application performance monitoring for Java and Spring Boot
Attaching the tracer. Datadog's Java tracer is a single file, dd-java-agent.jar, passed to the JVM with -javaagent. Datadog states that the flag goes before -jar, as a JVM option and not an application argument, and that the agent must never be added to the classpath. Service, environment and version are set with -Ddd.service, -Ddd.env and -Ddd.version, or the matching environment variables in a container.
Read more
Spring Boot monitoring. Datadog lists Spring Boot 1.5 to 3.x as fully supported through its Spring Web and WebFlux integrations, and Java 8 to 27 as generally available. A typical Spring Boot service then shows its endpoints, its JDBC queries, its outgoing HTTP calls and its Kafka producers and consumers without code changes.
.NET application performance monitoring: ASP.NET Core and .NET Framework
Modern .NET. Datadog lists .NET Core 3.1 and .NET 5 to .NET 10 as generally available, and recommends the latest patch of .NET 6 or .NET 8. On Windows the tracer is installed with an MSI; on Linux with a .deb, .rpm or tarball package; and per application with the Datadog.Trace.Bundle NuGet package, which Datadog notes does not instrument applications running in IIS. Automatic instrumentation is switched on with CORECLR_ENABLE_PROFILING=1, plus three more variables on Linux, set per application: machine-wide, every .NET process on the host would be traced.
Read more
.NET Framework on IIS. Many Saudi organisations still run portals on .NET Framework. Datadog lists 4.6.1 to 4.8.1 as generally available, with ASP.NET and Web Forms, ASP.NET MVC 4 and later, Web API 2 and WCF services instrumented. The MSI configures IIS, but the application pool must use "No Managed Code", and Datadog asks for a full stop and start of IIS (net stop /y was, then net start w3svc) rather than IIS Manager or iisreset. We schedule that restart in your change window.
PHP application performance monitoring and Laravel monitoring
Installing the extension. The PHP tracer is installed with Datadog's datadog-setup.php script. With --php-bin=all it adds the extension to every PHP binary it finds; --enable-profiling adds the profiler. PHP-FPM or Apache must then be restarted, and again after each upgrade. Datadog lists PHP 7.0 to 8.5 as generally available, for PHP-FPM, Apache mod_php, CLI, CGI and FrankenPHP.
Laravel, Symfony and WordPress. Datadog lists framework-level instrumentation for Laravel 4.2, 5.x, 6.x and 8.x to 11.x, Laravel Queues, Artisan commands, Symfony 2.x to 7.x and WordPress 4.x to 6.x. Requests, database queries, cache calls and queued jobs then appear as spans.
Slow PHP pages are often many small queries rather than one heavy one; the trace shows that pattern, and Datadog Database Monitoring shows the query plans behind it.
Node.js application performance monitoring
The Node.js tracer is the dd-trace package. Datadog states that it must load before the framework, for example with NODE_OPTIONS='--require dd-trace/init', because a framework that loads first may already have loaded the modules to be instrumented. Express 4 and later, frameworks built on Express, and Fastify are on Datadog's fully supported list, and frameworks with their own entry point, such as NestJS, use the same approach.
Datadog advises the latest LTS release of Node.js with the latest major version of dd-trace. We pin the tracer version in your build so that an upgrade is a deliberate change.
What is the same in every stack
- Single Step Instrumentation. On Linux hosts, Docker and Kubernetes, Datadog can load the tracer for all four languages without changing start-up commands; on Windows it covers .NET on IIS. It is not supported on ECS Fargate. We use it where it fits and the manual set-up above where it does not.
- OpenTelemetry. Services already instrumented with OpenTelemetry can send their traces to Datadog instead. Our OpenTelemetry with Datadog page covers that path and what changes with it.
- Unified service tagging. The same
env,serviceandversiontags in every language, injected by your CI/CD pipeline, so that a Java trace and a PHP trace are filtered and compared the same way. - Continuous Profiler. Datadog documents it for all four languages, with some features still in Preview.
How a multi-language APM rollout runs with Interkey
-
List the stacks.
Each service with its language, runtime, framework, host and owner.
-
Check compatibility.
Versions against Datadog's current lists, with gaps raised before work starts.
-
Quote the licences.
APM hosts and tier, with or without Continuous Profiler, quoted with implementation and support.
-
Instrument one service per stack.
In a test environment first, with tags and restart steps written down.
-
Roll out through your pipeline.
Service by service, inside your change windows, with the IIS and PHP-FPM restarts planned.
-
Build dashboards and alerts.
Per service and per journey, each alert naming the owning team.
-
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
Whatever the language, spans carry URLs, SQL statements and exception messages, and any of them can hold a national ID or a mobile number. As of November 2026 Datadog lists no site in the Middle East, so trace data is stored outside the Kingdom. Interkey agrees with your security team what each tracer collects and where masking runs before data leaves your network. 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, so the cost depends on the number of hosts, the APM tier and profiling, not on the language. Our Datadog pricing guide sets out how each unit is billed, and Interkey quotes the licences with the set-up and support.
The timeline is an estimate, not a promise. A first traced service per stack usually takes days once access is agreed. A full estate typically takes a few weeks, depending on the number of services, older runtimes or IIS, and how often change windows open.
RelatedDatadog data residency guide
Questions buyers ask
Does Datadog APM support our older .NET Framework applications on IIS?
Datadog lists .NET Framework 4.6.1 to 4.8.1 as generally available, including ASP.NET, Web Forms, MVC, Web API 2 and WCF. The IIS application pool must use "No Managed Code", and IIS needs a full restart after install.
Can Datadog trace a Spring Boot service without code changes?
Yes, for the frameworks Datadog lists. Attaching dd-java-agent.jar at start-up traces Spring Boot endpoints, JDBC queries and HTTP calls. Custom spans for business steps need a few lines of code.
Which Laravel versions can Datadog monitor?
Datadog lists Laravel 4.2, 5.x, 6.x and 8.x to 11.x, plus Laravel Queues and Artisan commands. For another version, Interkey checks the latest PHP tracer release before rollout.
Is the APM licence priced differently for Java, .NET or PHP in KSA?
No. Datadog bills APM per APM host, whatever the language. Interkey sells Datadog licences in Saudi Arabia and quotes them with set-up and support; our pricing guide has the list prices.
Do traces from our Saudi applications leave the Kingdom?
Yes. As of November 2026 Datadog lists no Middle East site. Interkey agrees with your security team what each tracer collects and masks personal data before it is sent.
How long does it take to instrument a mixed Java, .NET and PHP estate?
A first service per stack usually takes days once access is agreed. A full estate typically takes a few weeks, depending on service count, older runtimes, IIS restarts and change windows.
Next
Read next
Next step
Plan APM for your Java, .NET, PHP and Node.js services
Tell us which languages and frameworks you run, where they run (servers, IIS, containers, Kubernetes), and whether Datadog is in use. We can check compatibility and quote licences, set-up and support together.
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