func countConnectedClients()

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
}