in image/resources/knfsd-metrics-agent/internal/connections/scraper.go [63:95]
func countConnectedClients(ctx context.Context) (int64, error) {
var stdout, stderr bytes.Buffer
cmd := exec.CommandContext(ctx, "ss",
"--no-header", "--oneline", "--numeric",
"--tcp", "--udp",
"state", "established",
"sport", "2049",
)
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
var exit *exec.ExitError
if errors.As(err, &exit) {
err = fmt.Errorf("command terminated with exit code %d\n%s", exit.ExitCode(), stderr.String())
}
return 0, err
}
var count int64
s := bufio.NewScanner(&stdout)
for s.Scan() {
count++
}
err = s.Err()
if err != nil {
return 0, err
}
return count, nil
}