O presente repositório contém o código-fonte do Datadog Agent versão 7 e versão 6. Consulte a documentação do usuário do Agente para obter informações sobre as diferenças entre o Agente v5, o Agente v6 e o Agente v7. Além disso, fornecemos uma lista de binários pré-empacotados para um processo de instalação fácil aqui
Nota: o código fonte do Datadog Agent v5 está localizado no repositório dd-agent.
A documentação geral do projeto, incluindo instruções de instalação e desenvolvimento, está localizada no diretório docs do presente repositório.
Para construir o Agente você precisa:
$GOPATH
e ter $GOPATH/bin
em seu caminho.pip install -r requirements.txt
Isso também puxará o Invoke se ainda não estiver instalado. Nota: você pode querer usar um ambiente virtual python para evitar poluir o ambiente python em todo o sistema com as dependências de construção/desenvolvimento do agente. Você pode criar um ambiente virtual usando virtualenv
e então usar os parâmetros invoke agent.build
--python-home-2=
e/ou --python-home-3=
(dependendo das versões do python que você está using) para usar o interpretador e as bibliotecas do ambiente virtual. Por padrão, esse ambiente é usado apenas para dependências de desenvolvimento listadas em requirements.txt
.
Nota: você pode ter instalado previamente invoke
via Brew no MacOS ou pip
em qualquer outra plataforma. Recomendamos que você use a versão fixada no arquivo de requisitos para uma experiência de desenvolvimento/construção tranquila.
Observação: você pode ativar o preenchimento automático para tarefas de invocação. Use o comando abaixo para adicionar a linha apropriada ao seu arquivo .zshrc
. echo "source <(inv --print-completion-script zsh)" >> ~/.zshrc
Compilações e testes são orquestrados com invoke
, digite invoke --list
em um shell para ver as tarefas disponíveis.
Para começar a trabalhar no Agente, você pode construir o branch main
:
Confira o repositório: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent
.
cd na pasta do projeto: cd $GOPATH/src/github.com/DataDog/datadog-agent
.
Instale ferramentas go: invoke install-tools
(se você tiver um erro de tempo limite, pode ser necessário acrescentar GOPROXY=https://proxy.golang.org,https://goproxy.io,direct
env var ao comando).
Crie um arquivo de configuração datadog.yaml
de desenvolvimento em dev/dist/datadog.yaml
, contendo uma chave de API válida: api_key:
. Você pode começar com um vazio ou usar o completo gerado pela compilação do Agente na Etapa 5 (localizado em cmd/agent/dist/datadog.yaml
após a conclusão da compilação).
Crie o agente com invoke agent.build --build-exclude=systemd
.
Você pode especificar um local Python personalizado para o agente (útil ao usar 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
Executando invoke agent.build
:
bin/agent/dist
.bin/agent/agent
.dev/dist
para bin/agent/dist
. Consulte https://github.com/DataDog/datadog-agent/blob/main/dev/dist/README.md
para obter mais informações. Se você construiu uma versão mais antiga do agente, poderá receber o erro make: *** No targets specified and no makefile found. Stop.
. Para resolver o problema, você deve remover CMakeCache.txt
da pasta rtloader
com rm rtloader/CMakeCache.txt
.
Observe que o agente de rastreamento precisa ser criado e executado separadamente.
Consulte o Guia do desenvolvedor do agente para obter mais detalhes. Para obter instruções sobre como configurar um ambiente de desenvolvimento do Windows, consulte Windows Dev Env.
Execute testes de unidade usando invoke test
.
invoke test --targets=./pkg/aggregator
Você também pode usar invoke linter.go
para executar apenas os go linters.
invoke linter.go
Ao testar código que depende do rtloader, crie-o e instale-o primeiro.
invoke rtloader.make && invoke rtloader.install
invoke test --targets=./pkg/collector/python
Você pode executar o agente com:
./bin/agent/agent run -c bin/agent/dist/datadog.yaml
O arquivo bin/agent/dist/datadog.yaml
é copiado de dev/dist/datadog.yaml
por invoke agent.build
e deve conter uma chave de API válida.
Para executar uma verificação baseada em JMX localmente, você deve ter:
jar
JMXFetch copiado para dev/dist/jmx/jmxfetch.jar
java
disponível em seu $PATH
Para obter instruções detalhadas, consulte Verificações JMX
Você encontrará informações e ajuda sobre como contribuir com código para este projeto no diretório docs/dev
do repositório atual.
Os componentes do espaço do usuário do agente Datadog são licenciados sob a Licença Apache, Versão 2.0. O código BPF está licenciado sob a Licença Pública Geral, Versão 2.0.