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

Function parseWritebackRateDebug

bcache/get.go:250–313  ·  view source on GitHub ↗

ParseWritebackRateDebug parses lines from the writeback_rate_debug file.

(line string, wrd *WritebackRateDebugStats)

Source from the content-addressed store, hash-verified

248
249// ParseWritebackRateDebug parses lines from the writeback_rate_debug file.
250func 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 {

Callers 2

TestWritebackRateDebugFunction · 0.85
getWritebackRateDebugMethod · 0.85

Calls 2

dehumanizeFunction · 0.85
dehumanizeSignedFunction · 0.85

Tested by 1

TestWritebackRateDebugFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…