dd-trace-java is a free, open source monitoring & observability project written in Java and released under Apache-2.0. It has 738 GitHub stars, 364 forks and 478 open issues, and was last pushed 7 hours ago. On this registry it ranks #243 of 270 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 1 stars over the last 30 tracked days.

What is dd-trace-java?

dd-trace-java is Datadog's open-source APM client library for Java, and it is aimed at Java teams that need distributed tracing and continuous profiling from a single JVM agent rather than from hand-written instrumentation in every service.

What it is

dd-trace-java is the APM client Java library maintained by Datadog in the DataDog/dd-trace-java repository. The project is written in Java and released under the Apache-2.0 licence, and it carries 737 stars and 360 forks. The README describes it plainly as Datadog's APM client Java library, and it contains APIs for automatically or manually tracing and profiling Java applications. Its topic list places it squarely in the Java and JVM observability ecosystem: java, javaagent, bytebuddy, apm, distributed-trace, distributed-tracing, tracing, profiling, and datadoghq are all attached to the repository.

The concrete problem it addresses is the cost of instrumenting a Java application by hand. Rather than requiring an engineering team to add tracing calls throughout a codebase, dd-trace-java supplies automatic instrumentation, with a custom instrumentation API available for the parts that need manual coverage. Those two capabilities in turn feed Distributed Tracing, Continuous Profiling, Error Tracking, Continuous Integration Visibility, Deployment Tracking, and Code Hotspots, so the same client serves both the tracing and the profiling needs of a Java service instead of leaving them to separate tools.

Key capabilities

  • Automatic instrumentation of Java applications, delivered as a JVM agent (javaagent topic) and built on ByteBuddy (bytebuddy topic).
  • Manual tracing through the custom instrumentation API documented at the Datadog custom instrumentation reference.
  • Continuous Profiling of Java applications, described in the README as one of the features the library powers.
  • Distributed Tracing across services, listed as the headline feature set.
  • Error Tracking, which the README lists among the powered features.
  • Code Hotspots, which connect traces and profiles together.
  • Continuous Integration Visibility and Deployment Tracking, both named in the README's feature list.

Who uses it and how

  • Java service teams that run applications with the Datadog APM agent to obtain distributed traces without editing application code.
  • Platform and infrastructure groups that use Continuous Integration Visibility to observe build pipelines alongside runtime telemetry.
  • Teams that track releases through Deployment Tracking to correlate deploys with changes in service behaviour.
  • Performance-focused engineers who read Code Hotspots and the Continuous Profiling output together to find hot code paths.
  • Contributors and vendors who add new library instrumentation, following docs/add_new_instrumentation.md, with setup guidance in BUILDING.md and testing guidance in docs/how_to_test.md.

Getting started

The README does not embed install instructions; it points to the setup documentation at https://docs.datadoghq.com/tracing/languages/java. From there it separates the configuration reference (https://docs.datadoghq.com/tracing/trace_collection/library_config/java) and the custom instrumentation API reference (https://docs.datadoghq.com/tracing/trace_collection/custom_instrumentation/java/).

How it compares

The facts provided name no competing or paid products, so dd-trace-java stands alone in this registry as the Datadog Java APM client. It is not positioned against any alternative tool in the material available here.

When to use it — and when not to

Adopt it when the application is Java and the telemetry is headed to Datadog, since the library is explicitly that vendor's APM client and its reference documentation lives on the Datadog site rather than in the repository. The repository is a working codebase with a substantial backlog — 478 open issues — and a monthly minor release cadence documented in docs/releases.md, so teams should not expect the README itself to answer operational questions. Teams not standardised on Datadog, or those wanting instrumentation documentation held entirely inside the project, should look elsewhere.

project readme (upstream, from github) — read inline

Datadog logo

Datadog Java APM

GitHub latest release GitHub all releases GitHub

This repository contains dd-trace-java, Datadog's APM client Java library. dd-trace-java contains APIs to automatically or manually trace and profile Java applications.

These features power Distributed Tracing with Automatic Instrumentation, Continuous Profiling, Error Tracking, Continuous Integration Visibility, Deployment Tracking, Code Hotspots and more.

Getting Started

To use and configure, check out the setup documentation.

For advanced usage, check out the configuration reference and custom instrumentation API.

Confused about the terminology of APM? Take a look at the APM Glossary.

Contributing

Before contributing to the project, please take a moment to read our brief Contribution Guidelines. Then check our guides:

Or our reference documents:

Releases

Datadog will generally release a new minor version during the first full week of every month.

See release.md for more information.

Frequently asked questions

Is dd-trace-java free to use?

dd-trace-java is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does dd-trace-java do?

Datadog APM client for Java

What is dd-trace-java written in?

dd-trace-java is primarily written in Java. Its source is publicly available at https://github.com/DataDog/dd-trace-java, and it has 738 GitHub stars.