Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5330fba
feat(datadog_agent): support v3 series metrics intake
arfa79 Aug 30, 2026
8be2d90
fix(datadog_agent): address v3 series review feedback
arfa79 Aug 31, 2026
584d5bc
fix(datadog_agent): harden v3 series decoding
arfa79 Sep 1, 2026
e2463c4
fix(datadog_agent): bound v3 payload expansion
arfa79 Sep 1, 2026
42d4e86
fix(datadog_agent): tighten v3 expansion bounds
arfa79 Sep 1, 2026
068c239
fix(datadog_agent): cap v3 decoded allocation
arfa79 Sep 1, 2026
4000346
fix(datadog_agent): address remaining v3 review feedback
arfa79 Sep 1, 2026
6fa6c2d
fix(datadog_agent): bound v3 predecode allocations
arfa79 Sep 5, 2026
8402a3b
Merge branch 'master' into feat/datadog-agent-v3-series
arfa79 Sep 5, 2026
dddaf83
fix(datadog_agent): bound valid v3 strings before cloning
arfa79 Sep 5, 2026
502697b
fix(datadog_agent): preserve protobuf compatibility
arfa79 Sep 12, 2026
9b2c36c
Merge remote-tracking branch 'origin/master' into feat/datadog-agent-…
arfa79 Sep 12, 2026
e865f79
Merge remote-tracking branch 'origin/master' into feat/datadog-agent-…
arfa79 Sep 21, 2026
f042346
test(datadog): add v3 agent matrix entry
arfa79 Sep 22, 2026
1416f06
Merge branch 'master' into feat/datadog-agent-v3-series
arfa79 Sep 23, 2026
bd4c29e
fix(datadog_agent): remove v3beta series route
arfa79 Sep 23, 2026
bab1da0
Merge remote-tracking branch 'fork/feat/datadog-agent-v3-series' into…
arfa79 Sep 23, 2026
e7975ab
Merge origin/master into feat/datadog-agent-v3-series
arfa79 Sep 26, 2026
b61ea86
Merge branch 'master' into feat/datadog-agent-v3-series
arfa79 Sep 29, 2026
87f71b6
Merge remote-tracking branch 'origin/master' into feat/datadog-agent-…
arfa79 Oct 2, 2026
8e7ed05
Merge branch 'master' into feat/datadog-agent-v3-series
arfa79 Oct 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ fn main() {
println!("cargo:rerun-if-changed=proto/third-party/google/pubsub/v1/pubsub.proto");
println!("cargo:rerun-if-changed=proto/third-party/google/rpc/status.proto");
println!("cargo:rerun-if-changed=proto/vector/dd_metric.proto");
println!("cargo:rerun-if-changed=proto/vector/dd_metric_v3.proto");
println!("cargo:rerun-if-changed=proto/vector/dd_trace.proto");
println!("cargo:rerun-if-changed=proto/vector/ddsketch_full.proto");
println!("cargo:rerun-if-changed=proto/vector/vector.proto");
Expand Down Expand Up @@ -162,6 +163,7 @@ fn main() {
"lib/vector-core/proto/event.proto",
"proto/vector/ddsketch_full.proto",
"proto/vector/dd_metric.proto",
"proto/vector/dd_metric_v3.proto",
"proto/vector/dd_trace.proto",
"proto/third-party/google/pubsub/v1/pubsub.proto",
"proto/third-party/google/rpc/status.proto",
Expand Down
3 changes: 3 additions & 0 deletions changelog.d/25790_datadog_agent_v3_series.feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
The `datadog_agent` source now accepts the v3 series metrics intake format used by default by Datadog Agent 7.81.0 and newer.

authors: arfa79
74 changes: 74 additions & 0 deletions proto/vector/dd_metric_v3.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
// Extracted from https://github.com/DataDog/agent-payload/blob/master/proto/metrics/intake_v3.proto

syntax = "proto3";

package datadoghq.api.metrics.v3;

message Payload {
reserved 1;
Metadata metadata = 2;
MetricData metricData = 3;
}

message Metadata {
repeated string tags = 1;
repeated string resources = 2;
}

message MetricData {
bytes dictNameStr = 1;
bytes dictTagStr = 2;
repeated sint64 dictTagsets = 3;

bytes dictResourceStr = 4;
repeated int64 dictResourceLen = 5;
repeated sint64 dictResourceType = 6;
repeated sint64 dictResourceName = 7;

bytes dictSourceTypeName = 8;
repeated int32 dictOriginInfo = 9;
bytes dictUnitStr = 25;

repeated uint64 types = 10;
repeated sint64 nameRefs = 11;
repeated sint64 tagsetRefs = 12;
repeated sint64 resourcesRefs = 13;
repeated uint64 intervals = 14;
repeated uint64 numPoints = 15;
repeated sint64 sourceTypeNameRefs = 23;
repeated sint64 originInfoRefs = 24;
repeated sint64 unitRefs = 26;

repeated sint64 timestamps = 16;
repeated sint64 valsSint64 = 17;
repeated float valsFloat32 = 18;
repeated double valsFloat64 = 19;
repeated uint64 sketchNumBins = 20;
repeated sint32 sketchBinKeys = 21;
repeated uint32 sketchBinCnts = 22;
}

enum metricType {
UNUSED = 0;
Count = 1;
Rate = 2;
Gauge = 3;
Sketch = 4;
}

enum valueType {
Zero = 0x00;
Sint64 = 0x10;
Float32 = 0x20;
Float64 = 0x30;
}

enum metricFlags {
flagNone = 0;
flagNoIndex = 0x100;
flagHasUnit = 0x200;
}

message Response {
string error = 1;
}
Loading
Loading