Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions docs/system-metrics-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,26 @@ it will emit the following metrics about the VM where it is deployed:
| system_disk_system_inode_percent | ✔️ | ✔️ |
| system_disk_system_read_bytes | ✔️ | ✔️ |
| system_disk_system_write_bytes | ✔️ | ✔️ |
| system_disk_system_read_count | ✔️ | ✔️ |
| system_disk_system_write_count | ✔️ | ✔️ |
| system_disk_system_read_time | ✔️ | ✔️ |
| system_disk_system_write_time | ✔️ | ✔️ |
| system_disk_system_io_time | ✔️ | ✔️ |
| system_disk_ephemeral_percent | ✔️ | ✔️ |
| system_disk_ephemeral_inode_percent | ✔️ | ✔️ |
| system_disk_ephemeral_read_bytes | ✔️ | ✔️ |
| system_disk_ephemeral_write_bytes | ✔️ | ✔️ |
| system_disk_ephemeral_read_count | ✔️ | ✔️ |
| system_disk_ephemeral_write_count | ✔️ | ✔️ |
| system_disk_ephemeral_read_time | ✔️ | ✔️ |
| system_disk_ephemeral_write_time | ✔️ | ✔️ |
| system_disk_ephemeral_io_time | ✔️ | ✔️ |
| system_disk_persistent_percent | ✔️ | ✔️ |
| system_disk_persistent_inode_percent | ✔️ | ✔️ |
| system_disk_persistent_read_bytes | ✔️ | ✔️ |
| system_disk_persistent_write_bytes | ✔️ | ✔️ |
| system_disk_persistent_read_count | ✔️ | ✔️ |
| system_disk_persistent_write_count | ✔️ | ✔️ |
| system_disk_persistent_read_time | ✔️ | ✔️ |
| system_disk_persistent_write_time | ✔️ | ✔️ |
| system_disk_persistent_io_time | ✔️ | ✔️ |
Expand Down
6 changes: 6 additions & 0 deletions scripts/integration-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,28 @@ system_disk_ephemeral_inode_percent
system_disk_ephemeral_io_time
system_disk_ephemeral_percent
system_disk_ephemeral_read_bytes
system_disk_ephemeral_read_count
system_disk_ephemeral_read_time
system_disk_ephemeral_write_bytes
system_disk_ephemeral_write_count
system_disk_ephemeral_write_time
system_disk_persistent_inode_percent
system_disk_persistent_io_time
system_disk_persistent_percent
system_disk_persistent_read_bytes
system_disk_persistent_read_count
system_disk_persistent_read_time
system_disk_persistent_write_bytes
system_disk_persistent_write_count
system_disk_persistent_write_time
system_disk_system_inode_percent
system_disk_system_io_time
system_disk_system_percent
system_disk_system_read_bytes
system_disk_system_read_count
system_disk_system_read_time
system_disk_system_write_bytes
system_disk_system_write_count
system_disk_system_write_time
system_healthy
system_load_15m
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ var _ = Describe("SystemMetricsAgent", func() {
Expect(resp.StatusCode).To(Equal(http.StatusOK))
body, err := io.ReadAll(resp.Body)
Expect(err).To(BeNil())
Expect(strings.Count(string(body), "\n")).To(Equal(126))
Expect(strings.Count(string(body), "\n")).To(Equal(144))
})

It("limits metrics emitted", func() {
Expand Down
4 changes: 4 additions & 0 deletions src/pkg/collector/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ type DiskStat struct {
InodePercent float64
ReadBytes uint64
WriteBytes uint64
ReadCount uint64
WriteCount uint64
ReadTime uint64
WriteTime uint64
IOTime uint64
Expand Down Expand Up @@ -343,6 +345,8 @@ func (c Collector) diskStat(ctx context.Context, path string) (DiskStat, error)
InodePercent: disk.InodesUsedPercent,
ReadBytes: pStat[deviceName].ReadBytes,
WriteBytes: pStat[deviceName].WriteBytes,
ReadCount: pStat[deviceName].ReadCount,
WriteCount: pStat[deviceName].WriteCount,
ReadTime: pStat[deviceName].ReadTime,
WriteTime: pStat[deviceName].WriteTime,
IOTime: pStat[deviceName].IoTime,
Expand Down
16 changes: 16 additions & 0 deletions src/pkg/collector/collector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,8 @@ var _ = Describe("Collector", func() {
Expect(stats.SystemDisk.InodePercent).To(Equal(75.0))
Expect(stats.SystemDisk.ReadBytes).To(Equal(uint64(100)))
Expect(stats.SystemDisk.WriteBytes).To(Equal(uint64(200)))
Expect(stats.SystemDisk.ReadCount).To(Equal(uint64(10)))
Expect(stats.SystemDisk.WriteCount).To(Equal(uint64(20)))
Expect(stats.SystemDisk.ReadTime).To(Equal(uint64(300)))
Expect(stats.SystemDisk.WriteTime).To(Equal(uint64(400)))
Expect(stats.SystemDisk.IOTime).To(Equal(uint64(500)))
Expand All @@ -190,6 +192,8 @@ var _ = Describe("Collector", func() {
Expect(stats.EphemeralDisk.InodePercent).To(Equal(95.0))
Expect(stats.EphemeralDisk.ReadBytes).To(Equal(uint64(1000)))
Expect(stats.EphemeralDisk.WriteBytes).To(Equal(uint64(2000)))
Expect(stats.EphemeralDisk.ReadCount).To(Equal(uint64(100)))
Expect(stats.EphemeralDisk.WriteCount).To(Equal(uint64(200)))
Expect(stats.EphemeralDisk.ReadTime).To(Equal(uint64(3000)))
Expect(stats.EphemeralDisk.WriteTime).To(Equal(uint64(4000)))
Expect(stats.EphemeralDisk.IOTime).To(Equal(uint64(5000)))
Expand All @@ -199,6 +203,8 @@ var _ = Describe("Collector", func() {
Expect(stats.PersistentDisk.InodePercent).To(Equal(115.0))
Expect(stats.PersistentDisk.ReadBytes).To(Equal(uint64(10000)))
Expect(stats.PersistentDisk.WriteBytes).To(Equal(uint64(20000)))
Expect(stats.PersistentDisk.ReadCount).To(Equal(uint64(1000)))
Expect(stats.PersistentDisk.WriteCount).To(Equal(uint64(2000)))
Expect(stats.PersistentDisk.ReadTime).To(Equal(uint64(30000)))
Expect(stats.PersistentDisk.WriteTime).To(Equal(uint64(40000)))
Expect(stats.PersistentDisk.IOTime).To(Equal(uint64(50000)))
Expand All @@ -215,6 +221,8 @@ var _ = Describe("Collector", func() {
Expect(stats.SystemDisk.InodePercent).To(Equal(75.0))
Expect(stats.SystemDisk.ReadBytes).To(Equal(uint64(100)))
Expect(stats.SystemDisk.WriteBytes).To(Equal(uint64(200)))
Expect(stats.SystemDisk.ReadCount).To(Equal(uint64(10)))
Expect(stats.SystemDisk.WriteCount).To(Equal(uint64(20)))
Expect(stats.SystemDisk.ReadTime).To(Equal(uint64(300)))
Expect(stats.SystemDisk.WriteTime).To(Equal(uint64(400)))
Expect(stats.SystemDisk.IOTime).To(Equal(uint64(500)))
Expand All @@ -224,6 +232,8 @@ var _ = Describe("Collector", func() {
Expect(stats.EphemeralDisk.InodePercent).To(Equal(95.0))
Expect(stats.EphemeralDisk.ReadBytes).To(Equal(uint64(1000)))
Expect(stats.EphemeralDisk.WriteBytes).To(Equal(uint64(2000)))
Expect(stats.EphemeralDisk.ReadCount).To(Equal(uint64(100)))
Expect(stats.EphemeralDisk.WriteCount).To(Equal(uint64(200)))
Expect(stats.EphemeralDisk.ReadTime).To(Equal(uint64(3000)))
Expect(stats.EphemeralDisk.WriteTime).To(Equal(uint64(4000)))
Expect(stats.EphemeralDisk.IOTime).To(Equal(uint64(5000)))
Expand Down Expand Up @@ -787,6 +797,8 @@ func (s *stubRawCollector) DiskIOCountersWithContext(_ context.Context, names ..
"sda1": disk.IOCountersStat{
ReadBytes: 100,
WriteBytes: 200,
ReadCount: 10,
WriteCount: 20,
ReadTime: 300,
WriteTime: 400,
IoTime: 500,
Expand All @@ -797,6 +809,8 @@ func (s *stubRawCollector) DiskIOCountersWithContext(_ context.Context, names ..
"sdb1": disk.IOCountersStat{
ReadBytes: 1000,
WriteBytes: 2000,
ReadCount: 100,
WriteCount: 200,
ReadTime: 3000,
WriteTime: 4000,
IoTime: 5000,
Expand All @@ -807,6 +821,8 @@ func (s *stubRawCollector) DiskIOCountersWithContext(_ context.Context, names ..
"sdb2": disk.IOCountersStat{
ReadBytes: 10000,
WriteBytes: 20000,
ReadCount: 1000,
WriteCount: 2000,
ReadTime: 30000,
WriteTime: 40000,
IoTime: 50000,
Expand Down
6 changes: 6 additions & 0 deletions src/pkg/collector/processor_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ var (

ReadBytes: 10,
WriteBytes: 20,
ReadCount: 1,
WriteCount: 2,
ReadTime: 30,
WriteTime: 40,
IOTime: 50,
Expand All @@ -90,6 +92,8 @@ var (

ReadBytes: 100,
WriteBytes: 200,
ReadCount: 11,
WriteCount: 21,
ReadTime: 300,
WriteTime: 400,
IOTime: 500,
Expand All @@ -103,6 +107,8 @@ var (

ReadBytes: 1000,
WriteBytes: 2000,
ReadCount: 101,
WriteCount: 201,
ReadTime: 3000,
WriteTime: 4000,
IOTime: 5000,
Expand Down
18 changes: 18 additions & 0 deletions src/pkg/egress/stats/prometheus_sender.go
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,12 @@ func (p PromSender) setSystemDiskGauges(stats collector.SystemStat) {
gauge = p.registry.Get("system_disk_system_write_bytes", p.origin, "Bytes", labels)
gauge.Set(float64(stats.SystemDisk.WriteBytes))

gauge = p.registry.Get("system_disk_system_read_count", p.origin, "count", labels)
gauge.Set(float64(stats.SystemDisk.ReadCount))

gauge = p.registry.Get("system_disk_system_write_count", p.origin, "count", labels)
gauge.Set(float64(stats.SystemDisk.WriteCount))

gauge = p.registry.Get("system_disk_system_read_time", p.origin, "ms", labels)
gauge.Set(float64(stats.SystemDisk.ReadTime))

Expand Down Expand Up @@ -236,6 +242,12 @@ func (p PromSender) setEphemeralDiskGauges(stats collector.SystemStat) {
gauge = p.registry.Get("system_disk_ephemeral_write_bytes", p.origin, "Bytes", labels)
gauge.Set(float64(stats.EphemeralDisk.WriteBytes))

gauge = p.registry.Get("system_disk_ephemeral_read_count", p.origin, "count", labels)
gauge.Set(float64(stats.EphemeralDisk.ReadCount))

gauge = p.registry.Get("system_disk_ephemeral_write_count", p.origin, "count", labels)
gauge.Set(float64(stats.EphemeralDisk.WriteCount))

gauge = p.registry.Get("system_disk_ephemeral_read_time", p.origin, "ms", labels)
gauge.Set(float64(stats.EphemeralDisk.ReadTime))

Expand Down Expand Up @@ -266,6 +278,12 @@ func (p PromSender) setPersistentDiskGauges(stats collector.SystemStat) {
gauge = p.registry.Get("system_disk_persistent_write_bytes", p.origin, "Bytes", labels)
gauge.Set(float64(stats.PersistentDisk.WriteBytes))

gauge = p.registry.Get("system_disk_persistent_read_count", p.origin, "count", labels)
gauge.Set(float64(stats.PersistentDisk.ReadCount))

gauge = p.registry.Get("system_disk_persistent_write_count", p.origin, "count", labels)
gauge.Set(float64(stats.PersistentDisk.WriteCount))

gauge = p.registry.Get("system_disk_persistent_read_time", p.origin, "ms", labels)
gauge.Set(float64(stats.PersistentDisk.ReadTime))

Expand Down
Loading
Loading