in pkg/process/finders/kubernetes/finder.go [358:399]
func (f *ProcessFinder) BuildEBPFProcess(ctx *base.BuildEBPFProcessContext, ps api.DetectedProcess) *v3.EBPFProcessProperties {
k8sProcess := &v3.EBPFKubernetesProcessMetadata{}
k8sProcess.Pid = ps.Pid()
k8sProcess.Entity = &v3.EBPFProcessEntityMetadata{
Layer: ps.Entity().Layer,
ServiceName: ps.Entity().ServiceName,
InstanceName: ps.Entity().InstanceName,
ProcessName: ps.Entity().ProcessName,
Labels: ps.Entity().Labels,
}
k8sProcess.Properties = []*commonv3.KeyStringValuePair{
{
Key: "host_ip",
Value: ctx.HostIP,
},
{
Key: "container_ip",
Value: ps.(*Process).podContainer.Pod.Status.PodIP,
},
{
Key: "container_name",
Value: ps.(*Process).podContainer.ContainerSpec.Name,
},
{
Key: "pod_name",
Value: ps.(*Process).podContainer.Pod.Name,
},
{
Key: "pid",
Value: strconv.FormatInt(int64(ps.Pid()), 10),
},
{
Key: "command_line",
Value: ps.(*Process).cmd,
},
}
k8sProcess.Properties = append(k8sProcess.Properties, f.BuildNecessaryProperties(ps)...)
properties := &v3.EBPFProcessProperties{Metadata: &v3.EBPFProcessProperties_K8SProcess{
K8SProcess: k8sProcess,
}}
return properties
}