MCPcopy Create free account
hub / github.com/prometheus/procfs / parseLine

Method parseLine

net_dev.go:89–174  ·  view source on GitHub ↗

parseLine parses a single line from the /proc/net/dev file. Header lines must be filtered prior to calling this method.

(rawLine string)

Source from the content-addressed store, hash-verified

87// parseLine parses a single line from the /proc/net/dev file. Header lines
88// must be filtered prior to calling this method.
89func (netDev NetDev) parseLine(rawLine string) (*NetDevLine, error) {
90 idx := strings.LastIndex(rawLine, ":")
91 if idx == -1 {
92 return nil, errors.New("invalid net/dev line, missing colon")
93 }
94 fields := strings.Fields(strings.TrimSpace(rawLine[idx+1:]))
95
96 var err error
97 line := &NetDevLine{}
98
99 // Interface Name
100 line.Name = strings.TrimSpace(rawLine[:idx])
101 if line.Name == "" {
102 return nil, errors.New("invalid net/dev line, empty interface name")
103 }
104
105 // RX
106 line.RxBytes, err = strconv.ParseUint(fields[0], 10, 64)
107 if err != nil {
108 return nil, err
109 }
110 line.RxPackets, err = strconv.ParseUint(fields[1], 10, 64)
111 if err != nil {
112 return nil, err
113 }
114 line.RxErrors, err = strconv.ParseUint(fields[2], 10, 64)
115 if err != nil {
116 return nil, err
117 }
118 line.RxDropped, err = strconv.ParseUint(fields[3], 10, 64)
119 if err != nil {
120 return nil, err
121 }
122 line.RxFIFO, err = strconv.ParseUint(fields[4], 10, 64)
123 if err != nil {
124 return nil, err
125 }
126 line.RxFrame, err = strconv.ParseUint(fields[5], 10, 64)
127 if err != nil {
128 return nil, err
129 }
130 line.RxCompressed, err = strconv.ParseUint(fields[6], 10, 64)
131 if err != nil {
132 return nil, err
133 }
134 line.RxMulticast, err = strconv.ParseUint(fields[7], 10, 64)
135 if err != nil {
136 return nil, err
137 }
138
139 // TX
140 line.TxBytes, err = strconv.ParseUint(fields[8], 10, 64)
141 if err != nil {
142 return nil, err
143 }
144 line.TxPackets, err = strconv.ParseUint(fields[9], 10, 64)
145 if err != nil {
146 return nil, err

Callers 2

newNetDevFunction · 0.95
TestNetDevParseLineFunction · 0.45

Calls

no outgoing calls

Tested by 1

TestNetDevParseLineFunction · 0.36