The present repository contains the source code of the Datadog Agent version 7 and version 6. Please refer to the Agent user documentation for information about differences between Agent v5, Agent v6 and Agent v7. Additionally, we provide a list of prepackaged binaries for an easy install process here
Note: the source code of Datadog Agent v5 is located in the dd-agent repository.
The general documentation of the project, including instructions for installation and development, is located under the docs directory of the present repo.
To build the Agent you need:
- Go 1.13 or later. You'll also need to set your
$GOPATH/binin your path.
- Python 2.7 or 3.7+ along with development libraries.
- Python dependencies. You may install these with
pip install -r requirements.txtThis will also pull in Invoke if not yet installed.
- CMake version 3.12 or later and a C++ compiler
Note: you may want to use a python virtual environment to avoid polluting your
system-wide python environment with the agent build/dev dependencies. You can
create a virtual environment using
virtualenv and then use the
--python-home-3=<venv_path> (depending on
the python versions you are using) to use the virtual environment's interpreter
and libraries. By default, this environment is only used for dev dependencies
Note: You may have previously installed
invoke via brew on MacOS, or
any other platform. We recommend you use the version pinned in the requirements
file for a smooth development/build experience.
Builds and tests are orchestrated with
invoke --list on a shell
to see the available tasks.
To start working on the Agent, you can build the
- Checkout the repo:
git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent.
- cd into the project folder:
- Install project's dependencies:
invoke deps. Make sure that
$GOPATH/binis in your
$PATHotherwise this step might fail.
- Create a development
datadog.yamlconfiguration file in
dev/dist/datadog.yaml, containing a valid API key:
- Build the agent with
invoke agent.build --build-exclude=systemd. By default, the Agent will be built to use Python 3 but you can select which Python version you want to use:
invoke agent.build --python-runtimes 2for Python2 only
invoke agent.build --python-runtimes 3for Python3 only
invoke agent.build --python-runtimes 2,3for both Python2 and Python3 You can specify a custom Python location for the agent (useful when using virtualenvs):
invoke agent.build --python-runtimes 2,3 --python-home-2=$GOPATH/src/github.com/DataDog/datadog-agent/venv2 --python-home-3=$GOPATH/src/github.com/DataDog/datadog-agent/venv3. Running
- Discards any changes done in
- Builds the Agent and writes the binary to
- Copies files from
https://github.com/DataDog/datadog-agent/blob/master/dev/dist/README.mdfor more information. If you built an older version of the agent, you may have the error
make: *** No targets specified and no makefile found. Stop.. To solve the issue, you should remove
You can run the agent with:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
bin/agent/dist/datadog.yaml is copied from
invoke agent.build and must contain a valid api key.
You'll find information and help on how to contribute code to this project under
docs/dev directory of the present repo.