ParseWritebackRateDebug parses lines from the writeback_rate_debug file.
(line string, wrd *WritebackRateDebugStats)
| 248 | |
| 249 | // ParseWritebackRateDebug parses lines from the writeback_rate_debug file. |
| 250 | func parseWritebackRateDebug(line string, wrd *WritebackRateDebugStats) error { |
| 251 | switch { |
| 252 | case strings.HasPrefix(line, "rate:"): |
| 253 | fields := strings.Fields(line) |
| 254 | rawValue := fields[len(fields)-1] |
| 255 | valueStr := strings.TrimSuffix(rawValue, "/sec") |
| 256 | value, err := dehumanize([]byte(valueStr)) |
| 257 | if err != nil { |
| 258 | return err |
| 259 | } |
| 260 | wrd.Rate = value |
| 261 | case strings.HasPrefix(line, "dirty:"): |
| 262 | fields := strings.Fields(line) |
| 263 | valueStr := fields[len(fields)-1] |
| 264 | value, err := dehumanize([]byte(valueStr)) |
| 265 | if err != nil { |
| 266 | return err |
| 267 | } |
| 268 | wrd.Dirty = value |
| 269 | case strings.HasPrefix(line, "target:"): |
| 270 | fields := strings.Fields(line) |
| 271 | valueStr := fields[len(fields)-1] |
| 272 | value, err := dehumanize([]byte(valueStr)) |
| 273 | if err != nil { |
| 274 | return err |
| 275 | } |
| 276 | wrd.Target = value |
| 277 | case strings.HasPrefix(line, "proportional:"): |
| 278 | fields := strings.Fields(line) |
| 279 | valueStr := fields[len(fields)-1] |
| 280 | value, err := dehumanizeSigned(valueStr) |
| 281 | if err != nil { |
| 282 | return err |
| 283 | } |
| 284 | wrd.Proportional = value |
| 285 | case strings.HasPrefix(line, "integral:"): |
| 286 | fields := strings.Fields(line) |
| 287 | valueStr := fields[len(fields)-1] |
| 288 | value, err := dehumanizeSigned(valueStr) |
| 289 | if err != nil { |
| 290 | return err |
| 291 | } |
| 292 | wrd.Integral = value |
| 293 | case strings.HasPrefix(line, "change:"): |
| 294 | fields := strings.Fields(line) |
| 295 | rawValue := fields[len(fields)-1] |
| 296 | valueStr := strings.TrimSuffix(rawValue, "/sec") |
| 297 | value, err := dehumanizeSigned(valueStr) |
| 298 | if err != nil { |
| 299 | return err |
| 300 | } |
| 301 | wrd.Change = value |
| 302 | case strings.HasPrefix(line, "next io:"): |
| 303 | fields := strings.Fields(line) |
| 304 | rawValue := fields[len(fields)-1] |
| 305 | valueStr := strings.TrimSuffix(rawValue, "ms") |
| 306 | value, err := strconv.ParseInt(valueStr, 10, 64) |
| 307 | if err != nil { |
searching dependent graphs…