categraf/inputs/procstat/native_finder_windows.go

28 lines
530 B
Go

package procstat
import (
"strings"
)
// Pattern matches on the process name
func (pg *NativeFinder) Pattern(pattern string) ([]PID, error) {
var pids []PID
procs, err := pg.FastProcessList()
if err != nil {
return pids, err
}
for _, p := range procs {
name, err := p.Name()
if err != nil {
//skip, this can be caused by the pid no longer existing
//or you having no permissions to access it
continue
}
if strings.Contains(name, pattern) {
pids = append(pids, PID(p.Pid))
}
}
return pids, err
}