in pkg/process/finders/kubernetes/finder.go [242:285]
func (f *ProcessFinder) BuildProcesses(p *process.Process, pc *PodContainer) ([]*Process, error) {
// find builder
builders := make([]*ProcessBuilder, 0)
for _, b := range f.conf.Analyzers {
if !b.Active {
continue
}
success, err := executeFilter(b.FiltersBuilder, p, pc, f)
if err != nil {
return nil, err
} else if success {
builders = append(builders, b)
}
}
if len(builders) == 0 {
return nil, nil
}
cmdline, err := p.Cmdline()
if err != nil {
return nil, err
}
// build process
processes := make([]*Process, 0)
for _, builder := range builders {
entity := &api.ProcessEntity{}
entity.Layer = builder.Layer
entity.ServiceName, err = f.buildEntity(err, p, pc, builder.ServiceNameBuilder)
entity.InstanceName, err = f.buildEntity(err, p, pc, builder.InstanceNameBuilder)
entity.ProcessName, err = f.buildEntity(err, p, pc, builder.ProcessNameBuilder)
entity.Labels = builder.Labels
if err != nil {
return nil, err
}
// adding the cluster name into the service name
if f.clusterName != "" && !strings.Contains(entity.ServiceName, "::") {
entity.ServiceName = fmt.Sprintf("%s::%s", f.clusterName, entity.ServiceName)
}
processes = append(processes, NewProcess(p, cmdline, pc, entity))
}
return processes, nil
}