datadog-agent

module
v0.0.0-...-7dd2d7d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 25, 2019 License: Apache-2.0

README

Datadog Agent

CircleCI Build status Coverage status GoDoc Go Report Card

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.

Documentation

The general documentation of the project, including instructions for installation and development, is located under the docs directory of the present repo.

Getting started

To build the Agent you need:

  • Go 1.11.5 or later.
  • Python 2.7 along with development libraries.
  • Python dependencies. You may install these with 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. By default, this environment is only used for dev dependencies listed in requirements.txt, if you want the agent to use the virtual environment's interpreter and libraries instead of the system python's ones, add --use-venv to the build command.

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:

  1. checkout the repo: git clone https://github.com/DataDog/datadog-agent.git $GOPATH/src/github.com/DataDog/datadog-agent.
  2. cd into the project folder: cd $GOPATH/src/github.com/DataDog/datadog-agent.
  3. install project's dependencies: invoke deps. Make sure that $GOPATH/bin is in your $PATH otherwise this step might fail.
  4. build the whole project with invoke agent.build --build-exclude=snmp,systemd (with --use-venv to use a python virtualenv)

Please refer to the Agent Developer Guide for more details.

Run

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

Contributing code

You'll find information and help on how to contribute code to this project under the docs/dev directory of the present repo.

Directories

Path Synopsis
cmd
agent command
The Datadog Agent faithfully collects events and metrics and brings them to Datadog on your behalf.
The Datadog Agent faithfully collects events and metrics and brings them to Datadog on your behalf.
agent/api
Package api implements the agent IPC api.
Package api implements the agent IPC api.
agent/api/agent
Package agent implements the api endpoints for the `/agent` prefix.
Package agent implements the api endpoints for the `/agent` prefix.
agent/api/check
Package check implements the api endpoints for the `/check` prefix.
Package check implements the api endpoints for the `/check` prefix.
agent/app
Package app implements the Agent main loop, orchestrating all the components and providing the command line interface.
Package app implements the Agent main loop, orchestrating all the components and providing the command line interface.
agent/common
Package common provides a set of common symbols needed by different packages, to avoid circular dependencies.
Package common provides a set of common symbols needed by different packages, to avoid circular dependencies.
cluster-agent/api
Package api implements the agent IPC api.
Package api implements the agent IPC api.
cluster-agent/api/agent
Package agent implements the api endpoints for the `/agent` prefix.
Package agent implements the api endpoints for the `/agent` prefix.
dogstatsd command
py-launcher command
systray command
trace-agent command
pkg
collector/corechecks/cluster
Package cluster provides core checks for cluster level checks, used by the Datadog Cluster Agent.
Package cluster provides core checks for cluster level checks, used by the Datadog Cluster Agent.
collector/corechecks/containers
Package containers provides core checks for containers and orchestrators
Package containers provides core checks for containers and orchestrators
collector/corechecks/net
Package net provides core checks for networking
Package net provides core checks for networking
collector/metadata
Package metadata implements specific Metadata Collectors for the Agent.
Package metadata implements specific Metadata Collectors for the Agent.
logs/pb
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.
metadata/ecs
Package ecs provides functionalities to collect ECS metadata
Package ecs provides functionalities to collect ECS metadata
metadata/externalhost
Package externalhost implements the External Host Tags metadata provider.
Package externalhost implements the External Host Tags metadata provider.
procmatch
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.
trace/event
Package event contains functionality related to APM event extraction from traces.
Package event contains functionality related to APM event extraction from traces.
trace/metrics
Package metrics exposes utilities for setting up and using a sub-set of Datadog's dogstatsd client.
Package metrics exposes utilities for setting up and using a sub-set of Datadog's dogstatsd client.
trace/obfuscate
Package obfuscate implements quantizing and obfuscating of tags and resources for a set of spans matching a certain criteria.
Package obfuscate implements quantizing and obfuscating of tags and resources for a set of spans matching a certain criteria.
trace/pb
Package pb contains the data structures used by the trace agent to communicate with tracers and the Datadog API.
Package pb contains the data structures used by the trace agent to communicate with tracers and the Datadog API.
trace/sampler
Package sampler contains all the logic of the agent-side trace sampling
Package sampler contains all the logic of the agent-side trace sampling
trace/stats/quantile
Package quantile implements "Space-Efficient Online Computation of Quantile Summaries" (Greenwald, Khanna 2001): http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf
Package quantile implements "Space-Efficient Online Computation of Quantile Summaries" (Greenwald, Khanna 2001): http://infolab.stanford.edu/~datar/courses/cs361a/papers/quantiles.pdf
trace/test
Package test provides utilities for running integration tests on the trace agent.
Package test provides utilities for running integration tests on the trace agent.
trace/test/testutil
Package testutil provides easy ways to generate some random or deterministic data that can be use for tests or benchmarks.
Package testutil provides easy ways to generate some random or deterministic data that can be use for tests or benchmarks.
trace/traceutil
Package traceutil contains functions for extracting and processing traces.
Package traceutil contains functions for extracting and processing traces.
util/ecs
Package ecs provides metadata collection when the Agent runs on the ECS platform
Package ecs provides metadata collection when the Agent runs on the ECS platform
util/executable
Package executable provides information on the executable that started the process
Package executable provides information on the executable that started the process
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL