func()

in internal/resources/fetching/fetchers/k8s/process_fetcher.go [176:217]


func (f *ProcessesFetcher) createProcCommonData(stat proc.ProcStat, cmd string, pid string) ProcCommonData {
	processID, err := strconv.ParseInt(pid, 10, 64)
	if err != nil {
		f.log.Errorf("Couldn't parse PID, pid: %s", pid)
	}

	startTime, err := strconv.ParseUint(stat.StartTime, 10, 64)
	if err != nil {
		f.log.Errorf("Couldn't parse stat.StartTime, startTime: %s", stat.StartTime)
	}

	pgid, err := strconv.ParseInt(stat.Group, 10, 64)
	if err != nil {
		f.log.Errorf("Couldn't parse stat.Group, Group: %s, Error: %v", stat.Group, err)
	}

	ppid, err := strconv.ParseInt(stat.Parent, 10, 64)
	if err != nil {
		f.log.Errorf("Couldn't parse stat.Parent, Parent: %s, Error: %v", stat.Parent, err)
	}

	sysUptime, err := proc.ReadUptimeFS(f.Fs)
	if err != nil {
		f.log.Error("couldn't read system boot time", err)
	}
	uptimeDate := time.Now().Add(-time.Duration(sysUptime) * time.Second)

	args := strings.Split(cmd, " ")
	start := uptimeDate.Add(ticksToDuration(startTime))
	return ProcCommonData{
		Parent:      &ProcCommonData{PID: ppid},
		PID:         processID,
		Name:        stat.Name,
		PGID:        pgid,
		CommandLine: cmd,
		Args:        args,
		ArgsCount:   int64(len(args)),
		Title:       stat.Name,
		Start:       start,
		Uptime:      int64(time.Since(start).Seconds()),
	}
}