dd-agent-comp-experiments

module
v0.0.0-...-b691780 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2022 License: Apache-2.0

README

What's This?

This repo is an experiment in what a component-based Agent might look like. It's not intended to actually behave like an Agent -- all non-component implementation is fake. But it is intended to encompass the current design of the Agent, focusing on the different sorts of interconnections between components required.

This provides a loosely-sketched vision of what we will want to get to with the Agent, encouraging discussion now, during the design phase, but with concrete code to look at.

It is also a chance to try out some "interesting" ideas (such as config reducers) that would be much more difficult to sketch out in a real Agent. Maybe some of these are bad ideas, maybe they are things we can do later, or maybe we want to do them first thing.

You can see the set of components in COMPONENTS.md.

Building

To build, run inv build. This will build all binaries in the root of the repository.

To regenerate files in the repo, run inv generate.

Documentation

The documentation covers how to build and use components, including a description of Fx, the framework used to coordinate component interactions. It will become a part of the Agent's developer documentation, so bears close attention when reviewing this repository.

Directories

Path Synopsis
cmd
agent command
agent/flare
Package flare implements the `agent flare` command.
Package flare implements the `agent flare` command.
agent/health
Package health implements the `agent health` command.
Package health implements the `agent health` command.
agent/root
Package root defines the root 'agent' command.
Package root defines the root 'agent' command.
agent/run
Package run implements the `agent run` command.
Package run implements the `agent run` command.
agent/status
Package status implements the `agent status` command.
Package status implements the `agent status` command.
traceagent command
traceagent/root
Package root defines the root 'agent' command.
Package root defines the root 'agent' command.
traceagent/run
Package run implements the `agent run` command.
Package run implements the `agent run` command.
Package comp contains all of the components of the Datadog agent, arranged in sub-packages.
Package comp contains all of the components of the Datadog agent, arranged in sub-packages.
autodiscovery
Package autodiscovery implements autodiscovery: collecting integration configuration and monitoring for updates.
Package autodiscovery implements autodiscovery: collecting integration configuration and monitoring for updates.
autodiscovery/scheduler
Package scheduler publishes changes to discovered configuration configuration to its subscribers.
Package scheduler publishes changes to discovered configuration configuration to its subscribers.
core
Package core implements the "core" bundle, providing services common to all agent flavors and binaries.
Package core implements the "core" bundle, providing services common to all agent flavors and binaries.
core/config
Package config implements a component to handle agent configuration.
Package config implements a component to handle agent configuration.
core/flare
Package flare implements a component creates flares for submission to support.
Package flare implements a component creates flares for submission to support.
core/health
Package health implements a component that monitors the health of other components.
Package health implements a component that monitors the health of other components.
core/ipc/ipcclient
Package ipcclient implements a component to access the IPC server remotely.
Package ipcclient implements a component to access the IPC server remotely.
core/ipc/ipcserver
Package ipcserver implements a component to manage the IPC API server and act as a client.
Package ipcserver implements a component to manage the IPC API server and act as a client.
core/log
Package log implements a component to handle logging internal to the agent.
Package log implements a component to handle logging internal to the agent.
core/status
Package status implements the functionality behind `agent status`.
Package status implements the functionality behind `agent status`.
logs
Package logs collects the packages related to the logs agent.
Package logs collects the packages related to the logs agent.
logs/agent
Package agent implements a component representing the logs agent.
Package agent implements a component representing the logs agent.
logs/internal/sourcemgr
Package sourcemgr implements a component managing logs-agent sources (type LogSource).
Package sourcemgr implements a component managing logs-agent sources (type LogSource).
logs/launchers/file
Package file implements a launcher that responds to file sources by starting tailers for the indicated files.
Package file implements a launcher that responds to file sources by starting tailers for the indicated files.
logs/launchers/launchermgr
Package launchermgr implements a component managing logs-agent launchers.
Package launchermgr implements a component managing logs-agent launchers.
trace
Package logs collects the packages related to the logs agent.
Package logs collects the packages related to the logs agent.
trace/agent
Package agent implements a component representing the trace agent.
Package agent implements a component representing the trace agent.
trace/internal/httpreceiver
Package httpreceiver listens for incoming spans via HTTP and submits them to the APM agent pipeline.
Package httpreceiver listens for incoming spans via HTTP and submits them to the APM agent pipeline.
trace/internal/processor
Package processor handles processing spans for the trace agent.
Package processor handles processing spans for the trace agent.
trace/internal/tracewriter
Package tracewriter buffers traces and APM events, flushing them to the Datadog API.
Package tracewriter buffers traces and APM events, flushing them to the Datadog API.
pkg
util/actor
Package actor provides basic support for building actors for use in the Agent.
Package actor provides basic support for building actors for use in the Agent.
util/subscriptions
Package subscriptions provides support for managing subscriptions between components.
Package subscriptions provides support for managing subscriptions between components.

Jump to

Keyboard shortcuts

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