Repository: DataDog/datadog-agent
Pull request #36836: Rename ContainerStatus.AllocatedResources field to fix conflict
Author: login: sblumenthal
Labels: name: [deprecated] team/containers
name: qa/done
description: QA done before merge and regressions are covered by tests
name: team/container-platform
description: The Container Platform Team
name: long review
description: PR is complex, plan time to review it
name: ask-review
description: Ask required teams to review this PR
Created: 2025-05-09T17:51:28Z | Merged: 2025-05-12T16:26:55Z

### What does this PR do?

This PR renames the `AllocatedResources` field in the ContainerStatus struct to `ResolvedAllocatedResources`

### Motivation

Within the agent, the `AllocatedResources` field represents data which we ourselves are parsing and attaching to the data after the fact, the name of the field does not matter for our purposes. Unfortunately, there is already an `AllocatedResources` field [exposed on the ContainerStatus](https://github.com/kubernetes/kubernetes/blob/1b4c5b3f8605dc1c86050ae941a24556d4fbd678/pkg/apis/core/types.go#L2886-L2891) which is reported by the kubelet, which is gated behind the `InPlacePodVerticalScaling` feature flag (and it looks like this flag is [enabled by default on k8s 1.33+](https://github.com/kubernetes/kubernetes/blob/660df229bf3929741cf31659187060d0c651dcf9/pkg/features/kube_features.go#L1385-L1388))

The end result is that unmarshalling data from the /pods endpoint fails with:
```
Expected nil, but got: &errors.AgentError{message:"couldn't fetch \"podlist\": unable to unmarshal podlist, invalid or null: kubelet.Pod.Status: kubelet.Status.Containers: []kubelet.ContainerStatus: kubelet.ContainerStatus.AllocatedResources: []kubelet.ContainerAllocatedResource: decode slice: expect [ or n, but found {, error found in #10 byte of ...|sources\":{\n         |..., bigger context ...|4\",\n                        \"allocatedResources\":{\n                            \"cpu\":\"42m\",\n        |...", errorReason:1}
```

### Describe how you validated your changes
<!--
Validate your changes before merge, ensuring that:
* Your PR is tested by static / unit / integrations / e2e tests
* Your PR description details which e2e tests cover your changes, if any
* The PR description contains details of how you validated your changes. If you validated changes manually and not through automated tests, add context on why automated tests did not fit your changes validation.

If you want additional validation by a second person, you can ask reviewers to do it. Describe how to set up an environment for manual tests in the PR description. Manual validation is expected to happen on every commit before merge.

Any manual validation step should then map to an automated test. Manual validation should not substitute automation, minus exceptions not supported by test tooling yet.
-->

### Possible Drawbacks / Trade-offs

### Additional Notes
<!--
* Anything else we should know when reviewing?
* Include benchmarking information here whenever possible.
* Include info about alternatives that were considered and why the proposed
  version was chosen.
-->


Diff:
diff --git a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go
index 6ece58003f6c..2fab63cd1798 100644
--- a/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go
+++ b/comp/core/workloadmeta/collectors/internal/kubelet/kubelet.go
@@ -267,7 +267,7 @@ func parsePodContainers(
 		}
 
 		var allocatedResources []workloadmeta.ContainerAllocatedResource
-		for _, resource := range container.AllocatedResources {
+		for _, resource := range container.ResolvedAllocatedResources {
 			allocatedResources = append(allocatedResources, workloadmeta.ContainerAllocatedResource{
 				Name: resource.Name,
 				ID:   resource.ID,
@@ -310,15 +310,15 @@ func parsePodContainers(
 						kubernetes.CriContainerNamespaceLabel: pod.Metadata.Namespace,
 					},
 				},
-				Image:              image,
-				EnvVars:            env,
-				SecurityContext:    containerSecurityContext,
-				Ports:              ports,
-				Runtime:            workloadmeta.ContainerRuntime(runtime),
-				State:              containerState,
-				Owner:              parent,
-				Resources:          resources,
-				AllocatedResources: allocatedResources,
+				Image:                      image,
+				EnvVars:                    env,
+				SecurityContext:            containerSecurityContext,
+				Ports:                      ports,
+				Runtime:                    workloadmeta.ContainerRuntime(runtime),
+				State:                      containerState,
+				Owner:                      parent,
+				Resources:                  resources,
+				ResolvedAllocatedResources: allocatedResources,
 			},
 		})
 	}
diff --git a/comp/core/workloadmeta/def/types.go b/comp/core/workloadmeta/def/types.go
index 63e5028d1d27..201e1c512627 100644
--- a/comp/core/workloadmeta/def/types.go
+++ b/comp/core/workloadmeta/def/types.go
@@ -559,9 +559,9 @@ type Container struct {
 	SecurityContext *ContainerSecurityContext
 	Resources       ContainerResources
 
-	// AllocatedResources is the list of resources allocated to this pod. Requires the
+	// ResolvedAllocatedResources is the list of resources allocated to this pod. Requires the
 	// PodResources API to query that data.
-	AllocatedResources []ContainerAllocatedResource
+	ResolvedAllocatedResources []ContainerAllocatedResource
 	// CgroupPath is a path to the cgroup of the container.
 	// It can be relative to the cgroup parent.
 	// Linux only.
@@ -616,7 +616,7 @@ func (c Container) String(verbose bool) string {
 	_, _ = fmt.Fprint(&sb, c.Resources.String(verbose))
 
 	_, _ = fmt.Fprintln(&sb, "----------- Allocated Resources -----------")
-	for _, r := range c.AllocatedResources {
+	for _, r := range c.ResolvedAllocatedResources {
 		_, _ = fmt.Fprintln(&sb, r.String())
 	}
 
diff --git a/comp/core/workloadmeta/impl/dump_test.go b/comp/core/workloadmeta/impl/dump_test.go
index feaa67d32f95..5cc3c02983f7 100644
--- a/comp/core/workloadmeta/impl/dump_test.go
+++ b/comp/core/workloadmeta/impl/dump_test.go
@@ -30,7 +30,7 @@ func TestDump(t *testing.T) {
 		Resources: wmdef.ContainerResources{
 			GPUVendorList: []string{"nvidia"},
 		},
-		AllocatedResources: []wmdef.ContainerAllocatedResource{
+		ResolvedAllocatedResources: []wmdef.ContainerAllocatedResource{
 			{Name: "nvidia.com/gpu", ID: "GPU-1234"},
 		},
 		Runtime:       wmdef.ContainerRuntimeDocker,
diff --git a/comp/core/workloadmeta/proto/proto.go b/comp/core/workloadmeta/proto/proto.go
index f54c5c47dde3..c0f5ee2cd1a9 100644
--- a/comp/core/workloadmeta/proto/proto.go
+++ b/comp/core/workloadmeta/proto/proto.go
@@ -134,22 +134,22 @@ func protoContainerFromWorkloadmetaContainer(container *workloadmeta.Container)
 		return nil, err
 	}
 
-	protoAllocatedResources := toProtoAllocatedResources(container.AllocatedResources)
+	protoResolvedAllocatedResources := toProtoResolvedAllocatedResources(container.ResolvedAllocatedResources)
 
 	return &pb.Container{
-		EntityId:           protoEntityID,
-		EntityMeta:         toProtoEntityMetaFromContainer(container),
-		EnvVars:            container.EnvVars,
-		Hostname:           container.Hostname,
-		Image:              toProtoImage(&container.Image),
-		NetworkIps:         container.NetworkIPs,
-		Pid:                int32(container.PID),
-		Ports:              pbContainerPorts,
-		Runtime:            protoRuntime,
-		State:              protoContainerState,
-		CollectorTags:      container.CollectorTags,
-		CgroupPath:         container.CgroupPath,
-		AllocatedResources: protoAllocatedResources,
+		EntityId:                   protoEntityID,
+		EntityMeta:                 toProtoEntityMetaFromContainer(container),
+		EnvVars:                    container.EnvVars,
+		Hostname:                   container.Hostname,
+		Image:                      toProtoImage(&container.Image),
+		NetworkIps:                 container.NetworkIPs,
+		Pid:                        int32(container.PID),
+		Ports:                      pbContainerPorts,
+		Runtime:                    protoRuntime,
+		State:                      protoContainerState,
+		CollectorTags:              container.CollectorTags,
+		CgroupPath:                 container.CgroupPath,
+		ResolvedAllocatedResources: protoResolvedAllocatedResources,
 	}, nil
 }
 
@@ -284,16 +284,16 @@ func toProtoContainerState(state *workloadmeta.ContainerState) (*pb.ContainerSta
 	return res, nil
 }
 
-func toProtoAllocatedResources(resources []workloadmeta.ContainerAllocatedResource) []*pb.ContainerAllocatedResource {
-	var protoAllocatedResources []*pb.ContainerAllocatedResource
+func toProtoResolvedAllocatedResources(resources []workloadmeta.ContainerAllocatedResource) []*pb.ContainerAllocatedResource {
+	var protoResolvedAllocatedResources []*pb.ContainerAllocatedResource
 	for _, resource := range resources {
-		protoAllocatedResources = append(protoAllocatedResources, &pb.ContainerAllocatedResource{
+		protoResolvedAllocatedResources = append(protoResolvedAllocatedResources, &pb.ContainerAllocatedResource{
 			Name: resource.Name,
 			ID:   resource.ID,
 		})
 	}
 
-	return protoAllocatedResources
+	return protoResolvedAllocatedResources
 }
 
 func toProtoContainerStatus(status workloadmeta.ContainerStatus) (pb.ContainerStatus, error) {
@@ -615,22 +615,22 @@ func toWorkloadmetaContainer(protoContainer *pb.Container) (*workloadmeta.Contai
 		return nil, err
 	}
 
-	resources := toWorkloadmetaAllocatedResources(protoContainer.AllocatedResources)
+	resources := toWorkloadmetaResolvedAllocatedResources(protoContainer.ResolvedAllocatedResources)
 
 	return &workloadmeta.Container{
-		EntityID:           entityID,
-		EntityMeta:         toWorkloadmetaEntityMeta(protoContainer.EntityMeta),
-		EnvVars:            protoContainer.EnvVars,
-		Hostname:           protoContainer.Hostname,
-		Image:              toWorkloadmetaImage(protoContainer.Image),
-		NetworkIPs:         protoContainer.NetworkIps,
-		PID:                int(protoContainer.Pid),
-		Ports:              ports,
-		Runtime:            runtime,
-		State:              state,
-		CollectorTags:      protoContainer.CollectorTags,
-		CgroupPath:         protoContainer.CgroupPath,
-		AllocatedResources: resources,
+		EntityID:                   entityID,
+		EntityMeta:                 toWorkloadmetaEntityMeta(protoContainer.EntityMeta),
+		EnvVars:                    protoContainer.EnvVars,
+		Hostname:                   protoContainer.Hostname,
+		Image:                      toWorkloadmetaImage(protoContainer.Image),
+		NetworkIPs:                 protoContainer.NetworkIps,
+		PID:                        int(protoContainer.Pid),
+		Ports:                      ports,
+		Runtime:                    runtime,
+		State:                      state,
+		CollectorTags:              protoContainer.CollectorTags,
+		CgroupPath:                 protoContainer.CgroupPath,
+		ResolvedAllocatedResources: resources,
 	}, nil
 }
 
@@ -642,9 +642,9 @@ func toWorkloadmetaContainerPort(protoPort *pb.ContainerPort) workloadmeta.Conta
 	}
 }
 
-func toWorkloadmetaAllocatedResources(protoAllocatedResources []*pb.ContainerAllocatedResource) []workloadmeta.ContainerAllocatedResource {
+func toWorkloadmetaResolvedAllocatedResources(protoResolvedAllocatedResources []*pb.ContainerAllocatedResource) []workloadmeta.ContainerAllocatedResource {
 	var resources []workloadmeta.ContainerAllocatedResource
-	for _, protoResource := range protoAllocatedResources {
+	for _, protoResource := range protoResolvedAllocatedResources {
 		resources = append(resources, workloadmeta.ContainerAllocatedResource{
 			Name: protoResource.Name,
 			ID:   protoResource.ID,
diff --git a/comp/core/workloadmeta/proto/proto_test.go b/comp/core/workloadmeta/proto/proto_test.go
index 9de2eb29bb49..9cb06313b47f 100644
--- a/comp/core/workloadmeta/proto/proto_test.go
+++ b/comp/core/workloadmeta/proto/proto_test.go
@@ -84,7 +84,7 @@ func TestConversions(t *testing.T) {
 					CollectorTags: []string{
 						"tag1",
 					},
-					AllocatedResources: []workloadmeta.ContainerAllocatedResource{
+					ResolvedAllocatedResources: []workloadmeta.ContainerAllocatedResource{
 						{Name: "nvidia.com/gpu", ID: "gpu1"},
 					},
 				},
@@ -141,7 +141,7 @@ func TestConversions(t *testing.T) {
 					CollectorTags: []string{
 						"tag1",
 					},
-					AllocatedResources: []*pb.ContainerAllocatedResource{
+					ResolvedAllocatedResources: []*pb.ContainerAllocatedResource{
 						{Name: "nvidia.com/gpu", ID: "gpu1"},
 					},
 				},
diff --git a/pkg/collector/corechecks/gpu/gpu.go b/pkg/collector/corechecks/gpu/gpu.go
index b4841fb8f65d..0ca1917b6894 100644
--- a/pkg/collector/corechecks/gpu/gpu.go
+++ b/pkg/collector/corechecks/gpu/gpu.go
@@ -324,13 +324,13 @@ func (c *Check) getContainerTags(containerID string) []string {
 
 func (c *Check) getGPUToContainersMap() map[string][]*workloadmeta.Container {
 	containers := c.wmeta.ListContainersWithFilter(func(cont *workloadmeta.Container) bool {
-		return len(cont.AllocatedResources) > 0
+		return len(cont.ResolvedAllocatedResources) > 0
 	})
 
 	gpuToContainers := make(map[string][]*workloadmeta.Container)
 
 	for _, container := range containers {
-		for _, resource := range container.AllocatedResources {
+		for _, resource := range container.ResolvedAllocatedResources {
 			if resource.Name == "nvidia.com/gpu" {
 				gpuToContainers[resource.ID] = append(gpuToContainers[resource.ID], container)
 			}
diff --git a/pkg/gpu/context.go b/pkg/gpu/context.go
index 6c01c6c6670e..b58f3e39f18f 100644
--- a/pkg/gpu/context.go
+++ b/pkg/gpu/context.go
@@ -176,7 +176,7 @@ func (ctx *systemContext) filterDevicesForContainer(devices []ddnvml.Device, con
 
 	var filteredDevices []ddnvml.Device
 	numContainerGPUs := 0
-	for _, resource := range container.AllocatedResources {
+	for _, resource := range container.ResolvedAllocatedResources {
 		// Only consider NVIDIA GPUs
 		if resource.Name != nvidiaResourceName {
 			continue
@@ -216,7 +216,7 @@ func (ctx *systemContext) filterDevicesForContainer(devices []ddnvml.Device, con
 	// If the container has GPUs assigned to it but we couldn't match it to our
 	// devices, return the error for this case and show the allocated resources
 	// for debugging purposes.
-	return nil, fmt.Errorf("no GPU devices found for container %s that matched its allocated resources %+v", containerID, container.AllocatedResources)
+	return nil, fmt.Errorf("no GPU devices found for container %s that matched its allocated resources %+v", containerID, container.ResolvedAllocatedResources)
 }
 
 // getCurrentActiveGpuDevice returns the active GPU device for a given process and thread, based on the
diff --git a/pkg/gpu/context_test.go b/pkg/gpu/context_test.go
index 840e2802e78f..1c218e1e25d7 100644
--- a/pkg/gpu/context_test.go
+++ b/pkg/gpu/context_test.go
@@ -54,7 +54,7 @@ func TestFilterDevicesForContainer(t *testing.T) {
 		EntityMeta: workloadmeta.EntityMeta{
 			Name: containerID,
 		},
-		AllocatedResources: []workloadmeta.ContainerAllocatedResource{
+		ResolvedAllocatedResources: []workloadmeta.ContainerAllocatedResource{
 			{
 				Name: nvidiaResourceName,
 				ID:   gpuUUID,
@@ -71,7 +71,7 @@ func TestFilterDevicesForContainer(t *testing.T) {
 		EntityMeta: workloadmeta.EntityMeta{
 			Name: containerIDNoGpu,
 		},
-		AllocatedResources: nil,
+		ResolvedAllocatedResources: nil,
 	}
 
 	wmetaMock.Set(container)
@@ -160,7 +160,7 @@ func TestGetCurrentActiveGpuDevice(t *testing.T) {
 			Name: nvidiaResourceName,
 			ID:   gpuUUID,
 		}
-		container.AllocatedResources = append(container.AllocatedResources, resource)
+		container.ResolvedAllocatedResources = append(container.ResolvedAllocatedResources, resource)
 	}
 
 	wmetaMock.Set(container)
diff --git a/pkg/proto/datadog/workloadmeta/workloadmeta.proto b/pkg/proto/datadog/workloadmeta/workloadmeta.proto
index 0edf7cd7fc3c..497739b3c291 100644
--- a/pkg/proto/datadog/workloadmeta/workloadmeta.proto
+++ b/pkg/proto/datadog/workloadmeta/workloadmeta.proto
@@ -113,7 +113,7 @@ message Container {
   ContainerState state = 10;
   repeated string collectorTags = 11;
   string cgroupPath = 12;
-  repeated ContainerAllocatedResource allocatedResources = 13;
+  repeated ContainerAllocatedResource resolvedAllocatedResources = 13;
 }
 
 message KubernetesPodOwner {
diff --git a/pkg/proto/pbgo/core/workloadmeta.pb.go b/pkg/proto/pbgo/core/workloadmeta.pb.go
index 6491cdc48a5c..ccb9df927584 100644
--- a/pkg/proto/pbgo/core/workloadmeta.pb.go
+++ b/pkg/proto/pbgo/core/workloadmeta.pb.go
@@ -898,22 +898,22 @@ func (x *ContainerAllocatedResource) GetID() string {
 }
 
 type Container struct {
-	state              protoimpl.MessageState        `protogen:"open.v1"`
-	EntityId           *WorkloadmetaEntityId         `protobuf:"bytes,1,opt,name=entityId,proto3" json:"entityId,omitempty"`
-	EntityMeta         *EntityMeta                   `protobuf:"bytes,2,opt,name=entityMeta,proto3" json:"entityMeta,omitempty"`
-	EnvVars            map[string]string             `protobuf:"bytes,3,rep,name=envVars,proto3" json:"envVars,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
-	Hostname           string                        `protobuf:"bytes,4,opt,name=hostname,proto3" json:"hostname,omitempty"`
-	Image              *ContainerImage               `protobuf:"bytes,5,opt,name=image,proto3" json:"image,omitempty"`
-	NetworkIps         map[string]string             `protobuf:"bytes,6,rep,name=networkIps,proto3" json:"networkIps,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
-	Pid                int32                         `protobuf:"varint,7,opt,name=pid,proto3" json:"pid,omitempty"`
-	Ports              []*ContainerPort              `protobuf:"bytes,8,rep,name=ports,proto3" json:"ports,omitempty"`
-	Runtime            Runtime                       `protobuf:"varint,9,opt,name=runtime,proto3,enum=datadog.workloadmeta.Runtime" json:"runtime,omitempty"`
-	State              *ContainerState               `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"`
-	CollectorTags      []string                      `protobuf:"bytes,11,rep,name=collectorTags,proto3" json:"collectorTags,omitempty"`
-	CgroupPath         string                        `protobuf:"bytes,12,opt,name=cgroupPath,proto3" json:"cgroupPath,omitempty"`
-	AllocatedResources []*ContainerAllocatedResource `protobuf:"bytes,13,rep,name=allocatedResources,proto3" json:"allocatedResources,omitempty"`
-	unknownFields      protoimpl.UnknownFields
-	sizeCache          protoimpl.SizeCache
+	state                      protoimpl.MessageState        `protogen:"open.v1"`
+	EntityId                   *WorkloadmetaEntityId         `protobuf:"bytes,1,opt,name=entityId,proto3" json:"entityId,omitempty"`
+	EntityMeta                 *EntityMeta                   `protobuf:"bytes,2,opt,name=entityMeta,proto3" json:"entityMeta,omitempty"`
+	EnvVars                    map[string]string             `protobuf:"bytes,3,rep,name=envVars,proto3" json:"envVars,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Hostname                   string                        `protobuf:"bytes,4,opt,name=hostname,proto3" json:"hostname,omitempty"`
+	Image                      *ContainerImage               `protobuf:"bytes,5,opt,name=image,proto3" json:"image,omitempty"`
+	NetworkIps                 map[string]string             `protobuf:"bytes,6,rep,name=networkIps,proto3" json:"networkIps,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
+	Pid                        int32                         `protobuf:"varint,7,opt,name=pid,proto3" json:"pid,omitempty"`
+	Ports                      []*ContainerPort              `protobuf:"bytes,8,rep,name=ports,proto3" json:"ports,omitempty"`
+	Runtime                    Runtime                       `protobuf:"varint,9,opt,name=runtime,proto3,enum=datadog.workloadmeta.Runtime" json:"runtime,omitempty"`
+	State                      *ContainerState               `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"`
+	CollectorTags              []string                      `protobuf:"bytes,11,rep,name=collectorTags,proto3" json:"collectorTags,omitempty"`
+	CgroupPath                 string                        `protobuf:"bytes,12,opt,name=cgroupPath,proto3" json:"cgroupPath,omitempty"`
+	ResolvedAllocatedResources []*ContainerAllocatedResource `protobuf:"bytes,13,rep,name=resolvedAllocatedResources,proto3" json:"resolvedAllocatedResources,omitempty"`
+	unknownFields              protoimpl.UnknownFields
+	sizeCache                  protoimpl.SizeCache
 }
 
 func (x *Container) Reset() {
@@ -1030,9 +1030,9 @@ func (x *Container) GetCgroupPath() string {
 	return ""
 }
 
-func (x *Container) GetAllocatedResources() []*ContainerAllocatedResource {
+func (x *Container) GetResolvedAllocatedResources() []*ContainerAllocatedResource {
 	if x != nil {
-		return x.AllocatedResources
+		return x.ResolvedAllocatedResources
 	}
 	return nil
 }
@@ -1599,7 +1599,7 @@ const file_datadog_workloadmeta_workloadmeta_proto_rawDesc = "" +
 	"\bexitCode\x18\a \x01(\x03R\bexitCode\"@\n" +
 	"\x1aContainerAllocatedResource\x12\x12\n" +
 	"\x04Name\x18\x01 \x01(\tR\x04Name\x12\x0e\n" +
-	"\x02ID\x18\x02 \x01(\tR\x02ID\"\xeb\x06\n" +
+	"\x02ID\x18\x02 \x01(\tR\x02ID\"\xfb\x06\n" +
 	"\tContainer\x12F\n" +
 	"\bentityId\x18\x01 \x01(\v2*.datadog.workloadmeta.WorkloadmetaEntityIdR\bentityId\x12@\n" +
 	"\n" +
@@ -1619,8 +1619,8 @@ const file_datadog_workloadmeta_workloadmeta_proto_rawDesc = "" +
 	"\rcollectorTags\x18\v \x03(\tR\rcollectorTags\x12\x1e\n" +
 	"\n" +
 	"cgroupPath\x18\f \x01(\tR\n" +
-	"cgroupPath\x12`\n" +
-	"\x12allocatedResources\x18\r \x03(\v20.datadog.workloadmeta.ContainerAllocatedResourceR\x12allocatedResources\x1a:\n" +
+	"cgroupPath\x12p\n" +
+	"\x1aresolvedAllocatedResources\x18\r \x03(\v20.datadog.workloadmeta.ContainerAllocatedResourceR\x1aresolvedAllocatedResources\x1a:\n" +
 	"\fEnvVarsEntry\x12\x10\n" +
 	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
 	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\x1a=\n" +
@@ -1794,7 +1794,7 @@ var file_datadog_workloadmeta_workloadmeta_proto_depIdxs = []int32{
 	12, // 14: datadog.workloadmeta.Container.ports:type_name -> datadog.workloadmeta.ContainerPort
 	3,  // 15: datadog.workloadmeta.Container.runtime:type_name -> datadog.workloadmeta.Runtime
 	13, // 16: datadog.workloadmeta.Container.state:type_name -> datadog.workloadmeta.ContainerState
-	14, // 17: datadog.workloadmeta.Container.allocatedResources:type_name -> datadog.workloadmeta.ContainerAllocatedResource
+	14, // 17: datadog.workloadmeta.Container.resolvedAllocatedResources:type_name -> datadog.workloadmeta.ContainerAllocatedResource
 	11, // 18: datadog.workloadmeta.OrchestratorContainer.image:type_name -> datadog.workloadmeta.ContainerImage
 	9,  // 19: datadog.workloadmeta.KubernetesPod.entityId:type_name -> datadog.workloadmeta.WorkloadmetaEntityId
 	10, // 20: datadog.workloadmeta.KubernetesPod.entityMeta:type_name -> datadog.workloadmeta.EntityMeta
diff --git a/pkg/util/kubernetes/kubelet/kubelet.go b/pkg/util/kubernetes/kubelet/kubelet.go
index b92c16553835..fbd2935faa88 100644
--- a/pkg/util/kubernetes/kubelet/kubelet.go
+++ b/pkg/util/kubernetes/kubelet/kubelet.go
@@ -323,7 +323,7 @@ func (ku *KubeUtil) addResourcesToContainerList(containerToDevicesMap map[Contai
 		for _, device := range devices {
 			name := device.GetResourceName()
 			for _, id := range device.GetDeviceIds() {
-				container.AllocatedResources = append(container.AllocatedResources, ContainerAllocatedResource{
+				container.ResolvedAllocatedResources = append(container.ResolvedAllocatedResources, ContainerAllocatedResource{
 					Name: name,
 					ID:   id,
 				})
diff --git a/pkg/util/kubernetes/kubelet/types_kubelet.go b/pkg/util/kubernetes/kubelet/types_kubelet.go
index 8adab5a410fc..5dff8223e4d9 100644
--- a/pkg/util/kubernetes/kubelet/types_kubelet.go
+++ b/pkg/util/kubernetes/kubelet/types_kubelet.go
@@ -222,15 +222,15 @@ type Conditions struct {
 
 // ContainerStatus contains fields for unmarshalling a Pod.Status.Containers
 type ContainerStatus struct {
-	Name               string                       `json:"name"`
-	Image              string                       `json:"image"`
-	ImageID            string                       `json:"imageID"`
-	ID                 string                       `json:"containerID"`
-	Ready              bool                         `json:"ready"`
-	RestartCount       int                          `json:"restartCount"`
-	State              ContainerState               `json:"state"`
-	LastState          ContainerState               `json:"lastState"`
-	AllocatedResources []ContainerAllocatedResource `json:"allocatedResources,omitempty"`
+	Name                       string                       `json:"name"`
+	Image                      string                       `json:"image"`
+	ImageID                    string                       `json:"imageID"`
+	ID                         string                       `json:"containerID"`
+	Ready                      bool                         `json:"ready"`
+	RestartCount               int                          `json:"restartCount"`
+	State                      ContainerState               `json:"state"`
+	LastState                  ContainerState               `json:"lastState"`
+	ResolvedAllocatedResources []ContainerAllocatedResource `json:"resolvedAllocatedResources,omitempty"`
 }
 
 // ContainerAllocatedResource contains the fields for an assigned resource to a container
diff --git a/releasenotes/notes/kubelet-fix-pod-list-2278f8f8920510da.yaml b/releasenotes/notes/kubelet-fix-pod-list-2278f8f8920510da.yaml
new file mode 100644
index 000000000000..0800489f678e
--- /dev/null
+++ b/releasenotes/notes/kubelet-fix-pod-list-2278f8f8920510da.yaml
@@ -0,0 +1,12 @@
+# Each section from every release note are combined when the
+# CHANGELOG.rst is rendered. So the text needs to be worded so that
+# it does not depend on any information only available in another
+# section. This may mean repeating some details, but each section
+# must be readable independently of the other.
+#
+# Each section note must be formatted as reStructuredText.
+---
+fixes:
+  - |
+    Fixes issue parsing pod list from kubelet when the `InPlacePodVerticalScaling`
+    feature gate is enabled on the cluster.


Reviews:
user: login: pgimalac
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-09T17:56:28Z
user: login: rtrieu
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T18:10:36Z
user: login: sblumenthal
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-09T18:22:22Z
user: login: gjulianm
body: LGTM, thanks for fixing it!
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T18:23:01Z
user: login: justin-lesko
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-09T18:30:30Z
user: login: fisherevans
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-09T19:07:36Z
user: login: L3n41c
state: APPROVED
author_association: MEMBER
submitted_at: 2025-05-12T07:26:58Z
user: login: jose-manuel-almaza
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T08:24:57Z
user: login: gabedos
body: Rename looks good to me.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-05-12T15:29:16Z
user: login: wdhif
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-05-13T10:06:58Z

Review comments:
path: pkg/proto/pbgo/core/workloadmeta.pb.go
user: login: pgimalac
body: Could you update the codeowners for this file to Container Platform ? It is currently owned by Agent Runtimes but we don't own the proto file, I don't think that really makes sense 😄 
created_at: 2025-05-09T17:56:26Z
author_association: MEMBER
path: pkg/proto/pbgo/core/workloadmeta.pb.go
user: login: sblumenthal
body: cc @wdhif thoughts here?
created_at: 2025-05-09T18:22:22Z
author_association: MEMBER
path: pkg/proto/pbgo/core/workloadmeta.pb.go
user: login: wdhif
body: Hey, yes I agree 👍 @gabedos will do a PR for that, thanks for the heads up!
created_at: 2025-05-13T10:06:58Z
author_association: MEMBER

PR comments:
user: login: agent-platform-auto-pr[bot]
created_at: 2025-05-09T18:23:05Z
body: ## Uncompressed package size comparison

Comparison with [ancestor](https://github.com/DataDog/datadog-agent/commit/a19c6fccb46db8575e7f39b8a708a4744c32fca1) `a19c6fccb46db8575e7f39b8a708a4744c32fca1`


<details>
  <summary> Diff per package </summary>

|package|diff|status|size|ancestor|threshold|
|--|--|--|--|--|--|
|datadog-agent-amd64-deb|0.00MB|✅|776.00MB|776.00MB|0.50MB|
|datadog-agent-x86_64-rpm|0.00MB|✅|784.95MB|784.95MB|0.50MB|
|datadog-agent-x86_64-suse|0.00MB|✅|784.95MB|784.95MB|0.50MB|
|datadog-agent-arm64-deb|0.00MB|✅|765.79MB|765.79MB|0.50MB|
|datadog-agent-aarch64-rpm|0.00MB|✅|774.72MB|774.72MB|0.50MB|
|datadog-dogstatsd-amd64-deb|0.00MB|✅|31.20MB|31.20MB|0.50MB|
|datadog-dogstatsd-x86_64-rpm|0.00MB|✅|31.28MB|31.28MB|0.50MB|
|datadog-dogstatsd-x86_64-suse|0.00MB|✅|31.28MB|31.28MB|0.50MB|
|datadog-dogstatsd-arm64-deb|0.00MB|✅|30.03MB|30.03MB|0.50MB|
|datadog-heroku-agent-amd64-deb|0.00MB|✅|377.85MB|377.85MB|0.50MB|
|datadog-iot-agent-amd64-deb|0.00MB|✅|60.53MB|60.53MB|0.50MB|
|datadog-iot-agent-x86_64-rpm|0.00MB|✅|60.61MB|60.61MB|0.50MB|
|datadog-iot-agent-x86_64-suse|0.00MB|✅|60.61MB|60.61MB|0.50MB|
|datadog-iot-agent-arm64-deb|0.00MB|✅|57.82MB|57.82MB|0.50MB|
|datadog-iot-agent-aarch64-rpm|0.00MB|✅|57.90MB|57.90MB|0.50MB|

</details>

## Decision
✅ Passed



author_association: CONTRIBUTOR
user: login: cit-pr-commenter[bot]
created_at: 2025-05-09T19:07:15Z
body: ## Regression Detector

# Regression Detector Results

[Metrics dashboard](https://app.datadoghq.com/dashboard/ykh-ua8-vcu/SMP-Regression-Detector-Metrics?fromUser=true&refresh_mode=paused&tpl_var_run-id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)  
[Target profiles](https://app.datadoghq.com/profiling/explorer?query=env%3Asingle-machine-performance%20service%3Adatadog-agent%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_t=count&fromUser=false&viz=stream&start=1746808600000&end=1746820000000&paused=true)  
Run ID: 538ed8d5-23f3-42d7-8a78-f3ebd38f14c2

Baseline: a19c6fccb46db8575e7f39b8a708a4744c32fca1
Comparison: 2144c3afc703ab9a6177d33ba586ffbbff807cb5
[Diff](a19c6fccb46db8575e7f39b8a708a4744c32fca1...2144c3afc703ab9a6177d33ba586ffbbff807cb5)


## Optimization Goals: ✅ No significant changes detected


<details>
<summary><h2>
Fine details of change detection per experiment
</h2></summary>

| perf | experiment                                   | goal               | Δ mean % | Δ mean % CI    | trials | links                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|------|----------------------------------------------|--------------------|----------|----------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ➖   | quality_gate_logs                            | % cpu utilization  | +1.45    | [-1.33, +4.23] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Aquality_gate_logs%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false) [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_logs&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)                           |
| ➖   | uds_dogstatsd_to_api_cpu                     | % cpu utilization  | +0.66    | [-0.19, +1.51] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Auds_dogstatsd_to_api_cpu%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                        |
| ➖   | otlp_ingest_logs                             | memory utilization | +0.52    | [+0.40, +0.65] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Aotlp_ingest_logs%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                                |
| ➖   | otlp_ingest_metrics                          | memory utilization | +0.51    | [+0.35, +0.66] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Aotlp_ingest_metrics%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                             |
| ➖   | ddot_metrics                                 | memory utilization | +0.15    | [+0.03, +0.26] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Addot_metrics%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                                    |
| ➖   | quality_gate_idle_all_features               | memory utilization | +0.11    | [+0.03, +0.20] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Aquality_gate_idle_all_features%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false) [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_idle_all_features&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false) |
| ➖   | uds_dogstatsd_20mb_12k_contexts_20_senders   | memory utilization | +0.09    | [+0.05, +0.14] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Auds_dogstatsd_20mb_12k_contexts_20_senders%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                      |
| ➖   | file_to_blackhole_300ms_latency              | egress throughput  | +0.06    | [-0.56, +0.67] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_300ms_latency%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                 |
| ➖   | file_to_blackhole_0ms_latency                | egress throughput  | +0.03    | [-0.59, +0.66] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_0ms_latency%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                   |
| ➖   | file_to_blackhole_500ms_latency              | egress throughput  | +0.03    | [-0.63, +0.70] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_500ms_latency%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                 |
| ➖   | file_to_blackhole_1000ms_latency_linear_load | egress throughput  | +0.01    | [-0.21, +0.24] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_1000ms_latency_linear_load%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                    |
| ➖   | file_to_blackhole_0ms_latency_http2          | egress throughput  | +0.01    | [-0.63, +0.65] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_0ms_latency_http2%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                             |
| ➖   | tcp_dd_logs_filter_exclude                   | ingress throughput | +0.01    | [-0.01, +0.03] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Atcp_dd_logs_filter_exclude%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                      |
| ➖   | uds_dogstatsd_to_api                         | ingress throughput | -0.01    | [-0.28, +0.26] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Auds_dogstatsd_to_api%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                            |
| ➖   | file_to_blackhole_100ms_latency              | egress throughput  | -0.03    | [-0.58, +0.52] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_100ms_latency%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                 |
| ➖   | file_to_blackhole_0ms_latency_http1          | egress throughput  | -0.04    | [-0.65, +0.56] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_0ms_latency_http1%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                             |
| ➖   | file_to_blackhole_1000ms_latency             | egress throughput  | -0.07    | [-0.71, +0.56] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_to_blackhole_1000ms_latency%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                |
| ➖   | tcp_syslog_to_blackhole                      | ingress throughput | -0.24    | [-0.29, -0.18] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Atcp_syslog_to_blackhole%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                         |
| ➖   | file_tree                                    | memory utilization | -0.30    | [-0.44, -0.16] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Afile_tree%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                                       |
| ➖   | ddot_logs                                    | memory utilization | -0.62    | [-0.74, -0.49] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Addot_logs%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                                       |
| ➖   | docker_containers_memory                     | memory utilization | -0.82    | [-0.87, -0.77] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Adocker_containers_memory%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                        |
| ➖   | quality_gate_idle                            | memory utilization | -0.92    | [-0.98, -0.85] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Aquality_gate_idle%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false) [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_idle&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)                           |
| ➖   | docker_containers_cpu                        | % cpu utilization  | -2.67    | [-6.47, +1.14] | 1      | [Logs](https://app.datadoghq.com/logs?query=experiment%3Adocker_containers_cpu%20job_id%3A538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&agg_m=count&agg_m_source=base&agg_q=%40span.url&agg_q_source=base&agg_t=count&fromUser=true&index=single-machine-performance-target-logs&messageDisplay=inline&refresh_mode=paused&storage=hot&stream_sort=time%2Cdesc&top_n=100&top_o=top&viz=stream&x_missing=true&from_ts=1746808600000&to_ts=1746820000000&live=false)                                                                                                                                                                                                                                                                                                           |
</details>


<details>
<summary><h2>
Bounds Checks: ✅ Passed
</h2></summary>

| perf | experiment                                   | bounds_check_name  | replicates_passed | links                                                                                                                                                                                                                                                                                            |
|------|----------------------------------------------|--------------------|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ✅   | docker_containers_cpu                        | simple_check_run   | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | docker_containers_memory                     | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | docker_containers_memory                     | simple_check_run   | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_0ms_latency                | lost_bytes         | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_0ms_latency                | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_0ms_latency_http1          | lost_bytes         | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_0ms_latency_http1          | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_0ms_latency_http2          | lost_bytes         | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_0ms_latency_http2          | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_1000ms_latency             | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_1000ms_latency_linear_load | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_100ms_latency              | lost_bytes         | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_100ms_latency              | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_300ms_latency              | lost_bytes         | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_300ms_latency              | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_500ms_latency              | lost_bytes         | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | file_to_blackhole_500ms_latency              | memory_usage       | 10/10             |                                                                                                                                                                                                                                                                                                  |
| ✅   | quality_gate_idle                            | intake_connections | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_idle&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)              |
| ✅   | quality_gate_idle                            | memory_usage       | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_idle&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)              |
| ✅   | quality_gate_idle_all_features               | intake_connections | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_idle_all_features&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false) |
| ✅   | quality_gate_idle_all_features               | memory_usage       | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_idle_all_features&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false) |
| ✅   | quality_gate_logs                            | intake_connections | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_logs&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)              |
| ✅   | quality_gate_logs                            | lost_bytes         | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_logs&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)              |
| ✅   | quality_gate_logs                            | memory_usage       | 10/10             | [bounds checks dashboard](https://app.datadoghq.com/dashboard/vz3-jd5-bdi?fromUser=true&refresh_mode=paused&tpl_var_experiment%5B0%5D=quality_gate_logs&tpl_var_job_id%5B0%5D=538ed8d5-23f3-42d7-8a78-f3ebd38f14c2&view=spans&from_ts=1746815800000&to_ts=1746816400000&live=false)              |
</details>


<details>
<summary><h2>
Explanation
</h2></summary>

**Confidence level:** 90.00%
**Effect size tolerance:** |Δ mean %| ≥ 5.00%

Performance changes are noted in the **perf** column of each table:

* ✅ = significantly better comparison variant performance
* ❌ = significantly worse comparison variant performance
* ➖ = no significant change in performance

A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".

For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:

1. Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.

2. Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that *if our statistical model is accurate*, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.

3. Its configuration does not mark it "erratic".
</details>

## CI Pass/Fail Decision

✅ **Passed.** All Quality Gates passed.

- **quality_gate_logs**, bounds check **memory_usage**: 10/10 replicas passed. Gate passed.
- **quality_gate_logs**, bounds check **intake_connections**: 10/10 replicas passed. Gate passed.
- **quality_gate_logs**, bounds check **lost_bytes**: 10/10 replicas passed. Gate passed.
- **quality_gate_idle**, bounds check **memory_usage**: 10/10 replicas passed. Gate passed.
- **quality_gate_idle**, bounds check **intake_connections**: 10/10 replicas passed. Gate passed.
- **quality_gate_idle_all_features**, bounds check **intake_connections**: 10/10 replicas passed. Gate passed.
- **quality_gate_idle_all_features**, bounds check **memory_usage**: 10/10 replicas passed. Gate passed.
author_association: NONE
user: login: agent-platform-auto-pr[bot]
created_at: 2025-05-09T19:51:20Z
body: ## Static quality checks

✅ Please find below the results from static quality gates


<details>
<summary>Successful checks</summary>

### Info

|Result|Quality gate|On disk size|On disk size limit|On wire size|On wire size limit|
|----|----|----|----|----|----|
|✅|static_quality_gate_agent_deb_amd64|750.83 MiB|778.06 MiB|184.98 MiB|191.06 MiB|
|✅|static_quality_gate_agent_deb_amd64_fips|748.61 MiB|776.09 MiB|184.65 MiB|190.72 MiB|
|✅|static_quality_gate_agent_heroku_amd64|368.3 MiB|434.99 MiB|98.03 MiB|114.34 MiB|
|✅|static_quality_gate_agent_msi|968.83 MiB|978.45 MiB|146.83 MiB|151.65 MiB|
|✅|static_quality_gate_agent_rpm_amd64|750.8 MiB|778.06 MiB|186.8 MiB|193.42 MiB|
|✅|static_quality_gate_agent_rpm_amd64_fips|748.64 MiB|776.06 MiB|185.74 MiB|192.61 MiB|
|✅|static_quality_gate_agent_rpm_arm64|741.05 MiB|768.33 MiB|169.28 MiB|174.71 MiB|
|✅|static_quality_gate_agent_rpm_arm64_fips|739.02 MiB|766.55 MiB|168.02 MiB|173.92 MiB|
|✅|static_quality_gate_agent_suse_amd64|750.73 MiB|778.08 MiB|186.8 MiB|193.42 MiB|
|✅|static_quality_gate_agent_suse_amd64_fips|748.54 MiB|776.11 MiB|185.74 MiB|192.78 MiB|
|✅|static_quality_gate_agent_suse_arm64|740.94 MiB|768.31 MiB|169.28 MiB|174.71 MiB|
|✅|static_quality_gate_agent_suse_arm64_fips|738.94 MiB|766.5 MiB|168.02 MiB|173.92 MiB|
|✅|static_quality_gate_docker_agent_amd64|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_arm64|858.39 MiB|876.0 MiB|272.05 MiB|278.3 MiB|
|✅|static_quality_gate_docker_agent_jmx_amd64|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_jmx_arm64|858.39 MiB|876.63 MiB|272.05 MiB|278.4 MiB|
|✅|static_quality_gate_docker_agent_windows1809|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows1809_core|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows1809_core_jmx|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows1809_jmx|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows2022|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows2022_core|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows2022_core_jmx|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_agent_windows2022_jmx|845.0 MiB|862.5 MiB|285.22 MiB|292.0 MiB|
|✅|static_quality_gate_docker_cluster_agent_amd64|259.65 MiB|263.4 MiB|101.94 MiB|104.07 MiB|
|✅|static_quality_gate_docker_cluster_agent_arm64|275.64 MiB|279.38 MiB|96.88 MiB|98.95 MiB|
|✅|static_quality_gate_docker_cws_instrumentation_amd64|6.66 MiB|7.12 MiB|2.82 MiB|3.29 MiB|
|✅|static_quality_gate_docker_cws_instrumentation_arm64|6.44 MiB|6.92 MiB|2.6 MiB|3.07 MiB|
|✅|static_quality_gate_docker_dogstatsd_amd64|37.97 MiB|46.39 MiB|14.64 MiB|17.78 MiB|
|✅|static_quality_gate_docker_dogstatsd_arm64|36.89 MiB|45.05 MiB|13.73 MiB|16.65 MiB|
|✅|static_quality_gate_dogstatsd_deb_amd64|29.83 MiB|38.4 MiB|7.89 MiB|10.26 MiB|
|✅|static_quality_gate_dogstatsd_deb_arm64|28.71 MiB|36.98 MiB|6.87 MiB|8.96 MiB|
|✅|static_quality_gate_dogstatsd_rpm_amd64|29.83 MiB|38.4 MiB|7.9 MiB|10.27 MiB|
|✅|static_quality_gate_dogstatsd_suse_amd64|29.83 MiB|38.4 MiB|7.9 MiB|10.27 MiB|
|✅|static_quality_gate_iot_agent_deb_amd64|57.81 MiB|58.51 MiB|14.55 MiB|15.02 MiB|
|✅|static_quality_gate_iot_agent_deb_arm64|55.23 MiB|55.94 MiB|12.57 MiB|13.05 MiB|
|✅|static_quality_gate_iot_agent_deb_armhf|53.99 MiB|54.32 MiB|12.58 MiB|13.05 MiB|
|✅|static_quality_gate_iot_agent_rpm_amd64|57.81 MiB|58.51 MiB|14.57 MiB|15.04 MiB|
|✅|static_quality_gate_iot_agent_rpm_arm64|55.23 MiB|55.94 MiB|12.59 MiB|13.07 MiB|
|✅|static_quality_gate_iot_agent_suse_amd64|57.81 MiB|58.51 MiB|14.57 MiB|15.04 MiB|

</details>

author_association: CONTRIBUTOR
user: login: sblumenthal
created_at: 2025-05-12T15:29:44Z
body: /merge
author_association: MEMBER
user: login: dd-devflow[bot]
created_at: 2025-05-12T15:29:48Z
body: <!-- "FeedbackWorkflowId":"9a439d77-f721-4027-b123-36aedc570f2e_36" -->
[View all feedbacks in Devflow UI.](https://mosaic.us1.ddbuild.io/devflow/logs/9a439d77-f721-4027-b123-36aedc570f2e_36)

`2025-05-12 15:29:48 UTC` :information_source: Start processing command `/merge`

---
`2025-05-12 15:29:56 UTC` :information_source: **MergeQueue:** pull request added to the queue

The expected merge time in `main` is approximately 56m (p90).

---
`2025-05-12 16:26:58 UTC` :information_source: **MergeQueue:** This merge request was merged

author_association: NONE