# agent-payload **Repository Path**: mirrors_DataDog/agent-payload ## Basic Information - **Project Name**: agent-payload - **Description**: Payload format description for communication between the agent and the Datadog backend - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-02-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # agent-payload Payload format description for communication between the Agent and the Datadog backend. This repository includes the protocol-buffer IDL used by the agent6 and agent7 to communicate with the Datadog backend. Those payloads are only supported by the V2 API endpoints. The generated Go, and Java implementations are checked into this repository and can be used directly. Other consumers may copy the `.proto` files into their repository and generate their own bindings. # Use * Create a virtualenv for your python runtime * Install invoke from the requirements.txt * Run the `codegen.all` task ``` python -m venv venv source venv/bin/activate pip install -r requirements.txt inv codegen.all ``` # Prerequisites You will need * Python (3+, CI builds with 3.12) * Go (at least the version in `go.mod`) * A checkout of this repository within a GOPATH (so, at `$GOPATH/src/github.com/DataDog/agent-payload`) # Payloads ## Logs The logs payload is defined in [`proto/logs/agent_logs_payload.proto`](./proto/logs/agent_logs_payload.proto). The following implementations are available: * Go (gogofast): [github.com/DataDog/agent-payload/pb](https://pkg.go.dev/github.com/DataDog/agent-payload/pb) * Java: [`java/com/dd/agent/pb/Log.java`](./java/com/dd/agent/pb/Log.java) ## Metrics The metrics payload is defined in [`proto/metrics/agent_payload.proto`](./proto/metrics/agent_payload.proto). The following implementations are available: * Go (gogofast): [github.com/DataDog/agent-payload/gogen](https://pkg.go.dev/github.com/DataDog/agent-payload/gogen) ## Process The process payload is defined in [`proto/process/agent.proto`](./proto/process/agent.proto). The following implementations are available: * Go (gogofast): [github.com/DataDog/agent-payload/process](https://pkg.go.dev/github.com/DataDog/agent-payload/process) (note that this go package contains additional functionality beyond the generated PB implementation). ## CWS The CWS security dumps payload is defined in [`proto/cws/dumpsv1/activity_dump.proto`](./proto/cws/dumpsv1/activity_dump.proto). The following implementations are available: * Go (vtproto): [github.com/DataDog/agent-payload/v5/cws/dumpsv1](https://pkg.go.dev/github.com/DataDog/agent-payload/v5/cws/dumpsv1) * Java: [`java/com/dd/cws/adv1/pb/SecDumpProto.java`](./java/com/dd/cws/adv1/pb/SecDumpProto.java) ## Agent Health The Agent Health payloads are defined in [`proto/healthplatform/healthplatform.proto`](./proto/healthplatform/healthplatform.proto). The following implementation is available: * Go (protoc-gen-go): [github.com/DataDog/agent-payload/healthplatform] # Updating Proto Definitions After updating the IDL you must: - Regenerate the code: `inv codegen.all`, invoke will use gimme to run the task command with the current defined go version - If you have indentation/newlines changes, run `inv codegen.all` with the same Go version as defined in `go.mod` - Create a new tag with the updated version of the payload # Publishing Changes After merging changes to `master` create a release by: 1. Navigate to the [Releases](https://github.com/DataDog/agent-payload/releases) page 2. Click "Draft a new release" 3. In the "Choose a tag" drop down, type in the next version number Generally you can add one to the last version number. Make sure to include the `v` prefix. For example, if the last release was v5.0.37, your release should be v5.0.38. 5. The release title should be the same as the version tag 6. Use "Generate release notes" to fill in the release description 7. Click "Publish release" This will create a git tag that can now be referenced in other repos.