Open-Source Wikis

/

Datadog Agent

/

How to contribute

DataDog/datadog-agent

How to contribute

This section is the practical reference for working in the repository: development workflow, testing, debugging, conventions, and the build tooling.

The canonical sources of truth are:

The pages in this section summarize the relevant parts of those documents and add context that comes from reading the code.

Subsections

  • Development workflow — branches, PRs, merge queue, release notes.
  • Testing — unit, integration, E2E, kernel matrix testing.
  • Debugging — flares, expvar, pprof, gohai.
  • Patterns and conventionsdda inv-only rule, build tag etiquette, component patterns.
  • Toolingdda and Invoke task catalog, Bazel, pre-commit, code generation.

Quick reference

Task Command
Install dev tools dda inv install-tools
Build the core Agent dda inv agent.build --build-exclude=systemd
Run all tests dda inv test
Run tests for one package dda inv test --targets=./pkg/aggregator
Run Go linter dda inv linter.go
Run all linters dda inv linter.all
Tidy go.mod and BUILD.bazel dda inv tidy
Add release note dda inv release.add-release-note <title>
Bazel build (eBPF) bazel build //pkg/ebpf:all_ebpf_programs
Run E2E in one area dda inv new-e2e-tests.run --targets=./tests/<area>/...

Definition of done

A change is "done" when:

  1. It builds for every relevant binary. Use dda inv *.build to verify; CI also covers the matrix.
  2. dda inv linter.go and dda inv linter.all pass. Pre-commit hooks catch most lint issues locally.
  3. Tests cover the change. Add or update unit tests; if the change affects a user-visible payload, add or update an E2E test (test/new-e2e/).
  4. Release notes are present. New features and bug fixes go through dda inv release.add-release-note.
  5. Documentation is updated in the same PR. Code comments, doc-strings, docs/public/, and any AGENTS.md files that mention the changed area must reflect the new state. The repo treats stale docs as bugs.
  6. CODEOWNERS-listed teams have approved. The merge queue enforces this.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

How to contribute – Datadog Agent wiki | Factory