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:
$GOPATH
and have $GOPATH/bin
in your path.pip install -r requirements.txt
This will also pull in Invoke if not yet installed.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 invoke
parameter
--python-home-2=<venv_path>
and/or --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
listed in requirements.txt
.
Note: You may have previously installed invoke
via brew on MacOS, or pip
in
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
, type invoke --list
on a shell
to see the available tasks.
To start working on the Agent, you can build the master
branch:
git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.cd $GOPATH/src/github.com/DataDog/datadog-agent
.invoke deps
.
Make sure that $GOPATH/bin
is in your $PATH
otherwise this step might fail.datadog.yaml
configuration file in dev/dist/datadog.yaml
, containing a valid API key: api_key: <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 2
for Python2 onlyinvoke agent.build --python-runtimes 3
for Python3 onlyinvoke agent.build --python-runtimes 2,3
for 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 invoke agent.build
:bin/agent/dist
.bin/agent/agent
.dev/dist
to bin/agent/dist
. See https://github.com/DataDog/datadog-agent/blob/master/dev/dist/README.md
for 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 CMakeCache.txt
from rtloader
folder with rm rtloader/CMakeCache.txt
. Please refer to the Agent Developer Guide for more details.
You can run the agent with:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
The file bin/agent/dist/datadog.yaml
is copied from dev/dist/datadog.yaml
by 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
the docs/dev
directory of the present repo.
© 2020 Anant Corporation, All Rights Reserved. All logos, trademarks and registered trademarks are the property of their respective owners.