in pkg/metrics/collector/conntrack.go [165:189]
func parseConntrackFile(r io.Reader) (*conntrackStats, error) {
scanner := bufio.NewScanner(r)
if !scanner.Scan() {
return nil, fmt.Errorf("empty file")
}
indices, err := parseHeader(scanner.Text())
if err != nil {
return nil, err
}
var lineCount int
accStats := &conntrackStats{}
for scanner.Scan() {
lineCount++
stats, err := parseConntrackData(scanner.Text(), indices)
if err != nil {
return nil, err
}
accStats.merge(stats)
}
if lineCount == 0 {
return nil, fmt.Errorf("missing data")
}
return accStats, nil
}