metrics: add read/write_bytes (#2265)
This commit is contained in:
parent
d620407ff4
commit
7169e2b864
@ -18,8 +18,10 @@ package metrics
|
||||
|
||||
// DiskStats is the per process disk io stats.
|
||||
type DiskStats struct {
|
||||
ReadCount int64 // Number of read operations executed
|
||||
ReadBytes int64 // Total number of bytes read
|
||||
WriteCount int64 // Number of write operations executed
|
||||
WriteBytes int64 // Total number of byte written
|
||||
ReadCount int64 // Number of read operations executed
|
||||
ReadBytes int64 // Total number of bytes read (include disk cache)
|
||||
WriteCount int64 // Number of write operations executed
|
||||
WriteBytes int64 // Total number of byte written
|
||||
ReadIOBytes int64 // Total number of io bytes read
|
||||
WriteIOBytes int64 // Total number of io bytes write
|
||||
}
|
||||
|
@ -67,6 +67,10 @@ func ReadDiskStats(stats *DiskStats) error {
|
||||
stats.ReadBytes = value
|
||||
case "wchar":
|
||||
stats.WriteBytes = value
|
||||
case "read_bytes":
|
||||
stats.ReadIOBytes = value
|
||||
case "write_bytes":
|
||||
stats.WriteIOBytes = value
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -171,27 +171,29 @@ func CollectProcessMetrics(refresh time.Duration) {
|
||||
|
||||
// Define the various metrics to collect
|
||||
var (
|
||||
cpuSysLoad = GetOrRegisterGauge("system/cpu/sysload", DefaultRegistry)
|
||||
cpuSysWait = GetOrRegisterGauge("system/cpu/syswait", DefaultRegistry)
|
||||
cpuProcLoad = GetOrRegisterGauge("system/cpu/procload", DefaultRegistry)
|
||||
cpuSysLoadTotal = GetOrRegisterCounterFloat64("system/cpu/sysload/total", DefaultRegistry)
|
||||
cpuSysWaitTotal = GetOrRegisterCounterFloat64("system/cpu/syswait/total", DefaultRegistry)
|
||||
cpuProcLoadTotal = GetOrRegisterCounterFloat64("system/cpu/procload/total", DefaultRegistry)
|
||||
cpuThreads = GetOrRegisterGauge("system/cpu/threads", DefaultRegistry)
|
||||
cpuGoroutines = GetOrRegisterGauge("system/cpu/goroutines", DefaultRegistry)
|
||||
cpuSchedLatency = getOrRegisterRuntimeHistogram("system/cpu/schedlatency", secondsToNs, nil)
|
||||
memPauses = getOrRegisterRuntimeHistogram("system/memory/pauses", secondsToNs, nil)
|
||||
memAllocs = GetOrRegisterMeter("system/memory/allocs", DefaultRegistry)
|
||||
memFrees = GetOrRegisterMeter("system/memory/frees", DefaultRegistry)
|
||||
memTotal = GetOrRegisterGauge("system/memory/held", DefaultRegistry)
|
||||
heapUsed = GetOrRegisterGauge("system/memory/used", DefaultRegistry)
|
||||
heapObjects = GetOrRegisterGauge("system/memory/objects", DefaultRegistry)
|
||||
diskReads = GetOrRegisterMeter("system/disk/readcount", DefaultRegistry)
|
||||
diskReadBytes = GetOrRegisterMeter("system/disk/readdata", DefaultRegistry)
|
||||
diskReadBytesCounter = GetOrRegisterCounter("system/disk/readbytes", DefaultRegistry)
|
||||
diskWrites = GetOrRegisterMeter("system/disk/writecount", DefaultRegistry)
|
||||
diskWriteBytes = GetOrRegisterMeter("system/disk/writedata", DefaultRegistry)
|
||||
diskWriteBytesCounter = GetOrRegisterCounter("system/disk/writebytes", DefaultRegistry)
|
||||
cpuSysLoad = GetOrRegisterGauge("system/cpu/sysload", DefaultRegistry)
|
||||
cpuSysWait = GetOrRegisterGauge("system/cpu/syswait", DefaultRegistry)
|
||||
cpuProcLoad = GetOrRegisterGauge("system/cpu/procload", DefaultRegistry)
|
||||
cpuSysLoadTotal = GetOrRegisterCounterFloat64("system/cpu/sysload/total", DefaultRegistry)
|
||||
cpuSysWaitTotal = GetOrRegisterCounterFloat64("system/cpu/syswait/total", DefaultRegistry)
|
||||
cpuProcLoadTotal = GetOrRegisterCounterFloat64("system/cpu/procload/total", DefaultRegistry)
|
||||
cpuThreads = GetOrRegisterGauge("system/cpu/threads", DefaultRegistry)
|
||||
cpuGoroutines = GetOrRegisterGauge("system/cpu/goroutines", DefaultRegistry)
|
||||
cpuSchedLatency = getOrRegisterRuntimeHistogram("system/cpu/schedlatency", secondsToNs, nil)
|
||||
memPauses = getOrRegisterRuntimeHistogram("system/memory/pauses", secondsToNs, nil)
|
||||
memAllocs = GetOrRegisterMeter("system/memory/allocs", DefaultRegistry)
|
||||
memFrees = GetOrRegisterMeter("system/memory/frees", DefaultRegistry)
|
||||
memTotal = GetOrRegisterGauge("system/memory/held", DefaultRegistry)
|
||||
heapUsed = GetOrRegisterGauge("system/memory/used", DefaultRegistry)
|
||||
heapObjects = GetOrRegisterGauge("system/memory/objects", DefaultRegistry)
|
||||
diskReads = GetOrRegisterMeter("system/disk/readcount", DefaultRegistry)
|
||||
diskReadBytes = GetOrRegisterMeter("system/disk/readdata", DefaultRegistry)
|
||||
diskReadBytesCounter = GetOrRegisterCounter("system/disk/readbytes", DefaultRegistry)
|
||||
diskWrites = GetOrRegisterMeter("system/disk/writecount", DefaultRegistry)
|
||||
diskWriteBytes = GetOrRegisterMeter("system/disk/writedata", DefaultRegistry)
|
||||
diskWriteBytesCounter = GetOrRegisterCounter("system/disk/writebytes", DefaultRegistry)
|
||||
diskIOReadBytesCounter = GetOrRegisterCounter("system/disk/io/readbytes", DefaultRegistry)
|
||||
diskIOWriteBytesCounter = GetOrRegisterCounter("system/disk/io/writebytes", DefaultRegistry)
|
||||
)
|
||||
|
||||
var lastCollectTime time.Time
|
||||
@ -243,6 +245,8 @@ func CollectProcessMetrics(refresh time.Duration) {
|
||||
diskWriteBytes.Mark(diskstats[now].WriteBytes - diskstats[prev].WriteBytes)
|
||||
diskReadBytesCounter.Inc(diskstats[now].ReadBytes - diskstats[prev].ReadBytes)
|
||||
diskWriteBytesCounter.Inc(diskstats[now].WriteBytes - diskstats[prev].WriteBytes)
|
||||
diskIOReadBytesCounter.Inc(diskstats[now].ReadIOBytes - diskstats[prev].ReadIOBytes)
|
||||
diskIOWriteBytesCounter.Inc(diskstats[now].WriteIOBytes - diskstats[prev].WriteIOBytes)
|
||||
}
|
||||
|
||||
time.Sleep(refresh)
|
||||
|
Loading…
Reference in New Issue
Block a user