metrics: add read/write_bytes (#2265)

This commit is contained in:
Fynn 2024-03-12 13:59:00 +08:00 committed by GitHub
parent d620407ff4
commit 7169e2b864
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 35 additions and 25 deletions

@ -19,7 +19,9 @@ package metrics
// DiskStats is the per process disk io stats. // DiskStats is the per process disk io stats.
type DiskStats struct { type DiskStats struct {
ReadCount int64 // Number of read operations executed ReadCount int64 // Number of read operations executed
ReadBytes int64 // Total number of bytes read ReadBytes int64 // Total number of bytes read (include disk cache)
WriteCount int64 // Number of write operations executed WriteCount int64 // Number of write operations executed
WriteBytes int64 // Total number of byte written 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 stats.ReadBytes = value
case "wchar": case "wchar":
stats.WriteBytes = value stats.WriteBytes = value
case "read_bytes":
stats.ReadIOBytes = value
case "write_bytes":
stats.WriteIOBytes = value
} }
} }
} }

@ -192,6 +192,8 @@ func CollectProcessMetrics(refresh time.Duration) {
diskWrites = GetOrRegisterMeter("system/disk/writecount", DefaultRegistry) diskWrites = GetOrRegisterMeter("system/disk/writecount", DefaultRegistry)
diskWriteBytes = GetOrRegisterMeter("system/disk/writedata", DefaultRegistry) diskWriteBytes = GetOrRegisterMeter("system/disk/writedata", DefaultRegistry)
diskWriteBytesCounter = GetOrRegisterCounter("system/disk/writebytes", 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 var lastCollectTime time.Time
@ -243,6 +245,8 @@ func CollectProcessMetrics(refresh time.Duration) {
diskWriteBytes.Mark(diskstats[now].WriteBytes - diskstats[prev].WriteBytes) diskWriteBytes.Mark(diskstats[now].WriteBytes - diskstats[prev].WriteBytes)
diskReadBytesCounter.Inc(diskstats[now].ReadBytes - diskstats[prev].ReadBytes) diskReadBytesCounter.Inc(diskstats[now].ReadBytes - diskstats[prev].ReadBytes)
diskWriteBytesCounter.Inc(diskstats[now].WriteBytes - diskstats[prev].WriteBytes) 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) time.Sleep(refresh)