The present repository contains the source code of the Datadog Agent version 6. Please refer to the Agent user documentation for information about differences between Agent 5 and Agent 6. Additionally, we provide a list of prepackaged binaries for an easy install process here
Note: the source code of Datadog Agent 5 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.11.5 or later. You'll also need to set your
$GOPATH/binin your path.
- Python 2.7 or 3.x 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
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.
- Build the
invoke rtloader.build && invoke rtloader.install. You will need CMake installed and a C++ compiler for this to work.
rtloaderis in charge of loading and running Python. By default
rtloaderwill be built for Python2, but you can choose which versions of Python you want to support:
invoke rtloader.build -p 2for Python2 only
invoke rtloader.build -p 3for Python3 only
invoke rtloader.build -p 2,3for both Python2 and Python3
- Build the agent with
invoke agent.build --build-exclude=systemd. You can specify a custom Python location for the agent (useful when using virtualenvs):
invoke agent.build --python-home-2=$GOPATH/src/github.com/DataDog/datadog-agent/venv2 --python-home-3=$GOPATH/src/github.com/DataDog/datadog-agent/venv3.
Please refer to the Agent Developer Guide for more details.
To start the agent type
agent run from the
bin/agent folder, it will take
care of adjusting paths and run the binary in foreground.
You need to provide a valid API key. You can either use the config file or overwrite it with the environment variable like:
DD_API_KEY=12345678990 ./bin/agent/agent run -c bin/agent/dist/datadog.yaml
You'll find information and help on how to contribute code to this project under
docs/dev directory of the present repo.