From 8bacfe28b12707ccb8fae7da35f01180abd2b6fb Mon Sep 17 00:00:00 2001 From: ic005077 Date: Sat, 12 Sep 2026 17:22:33 +0300 Subject: [PATCH] Emit disk read/write operation counts DiskIOCountersWithContext's underlying gopsutil call already returns ReadCount/WriteCount per disk device; the collector read every other field off that struct but silently dropped these two. Wires them through DiskStat and emits them as system_disk_{system,ephemeral, persistent}_{read,write}_count gauges, alongside the existing byte counters. Ref: TNZ-145560 --- docs/system-metrics-agent.md | 6 +++++ scripts/integration-tests.sh | 6 +++++ .../app/system_metrics_agent_test.go | 2 +- src/pkg/collector/collector.go | 4 ++++ src/pkg/collector/collector_test.go | 16 ++++++++++++++ src/pkg/collector/processor_test.go | 6 +++++ src/pkg/egress/stats/prometheus_sender.go | 18 +++++++++++++++ .../egress/stats/prometheus_sender_test.go | 22 +++++++++++++++++-- src/pkg/egress/stats/stats_suite_test.go | 6 +++++ 9 files changed, 83 insertions(+), 3 deletions(-) diff --git a/docs/system-metrics-agent.md b/docs/system-metrics-agent.md index 37331399..d4b3b079 100644 --- a/docs/system-metrics-agent.md +++ b/docs/system-metrics-agent.md @@ -27,6 +27,8 @@ 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 | ✔️ | ✔️ | @@ -34,6 +36,8 @@ it will emit the following metrics about the VM where it is deployed: | 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 | ✔️ | ✔️ | @@ -41,6 +45,8 @@ it will emit the following metrics about the VM where it is deployed: | 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 | ✔️ | ✔️ | diff --git a/scripts/integration-tests.sh b/scripts/integration-tests.sh index 66efecee..05a8ce1a 100755 --- a/scripts/integration-tests.sh +++ b/scripts/integration-tests.sh @@ -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 diff --git a/src/cmd/system-metrics-agent/app/system_metrics_agent_test.go b/src/cmd/system-metrics-agent/app/system_metrics_agent_test.go index d44ad96e..e4a16fc8 100644 --- a/src/cmd/system-metrics-agent/app/system_metrics_agent_test.go +++ b/src/cmd/system-metrics-agent/app/system_metrics_agent_test.go @@ -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() { diff --git a/src/pkg/collector/collector.go b/src/pkg/collector/collector.go index 8ce92da2..2c49b6ab 100644 --- a/src/pkg/collector/collector.go +++ b/src/pkg/collector/collector.go @@ -77,6 +77,8 @@ type DiskStat struct { InodePercent float64 ReadBytes uint64 WriteBytes uint64 + ReadCount uint64 + WriteCount uint64 ReadTime uint64 WriteTime uint64 IOTime uint64 @@ -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, diff --git a/src/pkg/collector/collector_test.go b/src/pkg/collector/collector_test.go index 7ce87395..95993389 100644 --- a/src/pkg/collector/collector_test.go +++ b/src/pkg/collector/collector_test.go @@ -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))) @@ -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))) @@ -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))) @@ -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))) @@ -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))) @@ -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, @@ -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, @@ -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, diff --git a/src/pkg/collector/processor_test.go b/src/pkg/collector/processor_test.go index 4519082d..42ba9924 100644 --- a/src/pkg/collector/processor_test.go +++ b/src/pkg/collector/processor_test.go @@ -77,6 +77,8 @@ var ( ReadBytes: 10, WriteBytes: 20, + ReadCount: 1, + WriteCount: 2, ReadTime: 30, WriteTime: 40, IOTime: 50, @@ -90,6 +92,8 @@ var ( ReadBytes: 100, WriteBytes: 200, + ReadCount: 11, + WriteCount: 21, ReadTime: 300, WriteTime: 400, IOTime: 500, @@ -103,6 +107,8 @@ var ( ReadBytes: 1000, WriteBytes: 2000, + ReadCount: 101, + WriteCount: 201, ReadTime: 3000, WriteTime: 4000, IOTime: 5000, diff --git a/src/pkg/egress/stats/prometheus_sender.go b/src/pkg/egress/stats/prometheus_sender.go index 8b44dcdc..ca1faf2b 100644 --- a/src/pkg/egress/stats/prometheus_sender.go +++ b/src/pkg/egress/stats/prometheus_sender.go @@ -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)) @@ -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)) @@ -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)) diff --git a/src/pkg/egress/stats/prometheus_sender_test.go b/src/pkg/egress/stats/prometheus_sender_test.go index 19c3b2b9..1d556d9e 100644 --- a/src/pkg/egress/stats/prometheus_sender_test.go +++ b/src/pkg/egress/stats/prometheus_sender_test.go @@ -59,11 +59,11 @@ var _ = Describe("Prometheus Sender", func() { It("gets the correct number of metrics from the registry", func() { sender.Send(defaultInput) - // 50 = system stats + disk + network proto counters + health. + // 56 = system stats + disk + network proto counters + health. // Clock drift metrics are not counted here because defaultInput // has ClockDriftEnabled=false (the zero value), which short-circuits // the entire setClockDriftGauges path before any gauge is created. - Expect(registry.gaugeCount).To(Equal(50)) + Expect(registry.gaugeCount).To(Equal(56)) }) It("does not panic with no default labels", func() { @@ -128,6 +128,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_system_inode_percent", "system_disk_system_inode_percent", map[string]string{"origin": "test-origin"}, "Percent", 45.0), Entry("system_disk_system_read_bytes", "system_disk_system_read_bytes", map[string]string{"origin": "test-origin"}, "Bytes", 10.0), Entry("system_disk_system_write_bytes", "system_disk_system_write_bytes", map[string]string{"origin": "test-origin"}, "Bytes", 20.0), + Entry("system_disk_system_read_count", "system_disk_system_read_count", map[string]string{"origin": "test-origin"}, "count", 1.0), + Entry("system_disk_system_write_count", "system_disk_system_write_count", map[string]string{"origin": "test-origin"}, "count", 2.0), Entry("system_disk_system_read_time", "system_disk_system_read_time", map[string]string{"origin": "test-origin"}, "ms", 30.0), Entry("system_disk_system_write_time", "system_disk_system_write_time", map[string]string{"origin": "test-origin"}, "ms", 40.0), Entry("system_disk_system_io_time", "system_disk_system_io_time", map[string]string{"origin": "test-origin"}, "ms", 50.0), @@ -135,6 +137,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_ephemeral_inode_percent", "system_disk_ephemeral_inode_percent", map[string]string{"origin": "test-origin"}, "Percent", 65.0), Entry("system_disk_ephemeral_read_bytes", "system_disk_ephemeral_read_bytes", map[string]string{"origin": "test-origin"}, "Bytes", 100.0), Entry("system_disk_ephemeral_write_bytes", "system_disk_ephemeral_write_bytes", map[string]string{"origin": "test-origin"}, "Bytes", 200.0), + Entry("system_disk_ephemeral_read_count", "system_disk_ephemeral_read_count", map[string]string{"origin": "test-origin"}, "count", 11.0), + Entry("system_disk_ephemeral_write_count", "system_disk_ephemeral_write_count", map[string]string{"origin": "test-origin"}, "count", 21.0), Entry("system_disk_ephemeral_read_time", "system_disk_ephemeral_read_time", map[string]string{"origin": "test-origin"}, "ms", 300.0), Entry("system_disk_ephemeral_write_time", "system_disk_ephemeral_write_time", map[string]string{"origin": "test-origin"}, "ms", 400.0), Entry("system_disk_ephemeral_io_time", "system_disk_ephemeral_io_time", map[string]string{"origin": "test-origin"}, "ms", 500.0), @@ -142,6 +146,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_persistent_inode_percent", "system_disk_persistent_inode_percent", map[string]string{"origin": "test-origin"}, "Percent", 85.0), Entry("system_disk_persistent_read_bytes", "system_disk_persistent_read_bytes", map[string]string{"origin": "test-origin"}, "Bytes", 1000.0), Entry("system_disk_persistent_write_bytes", "system_disk_persistent_write_bytes", map[string]string{"origin": "test-origin"}, "Bytes", 2000.0), + Entry("system_disk_persistent_read_count", "system_disk_persistent_read_count", map[string]string{"origin": "test-origin"}, "count", 101.0), + Entry("system_disk_persistent_write_count", "system_disk_persistent_write_count", map[string]string{"origin": "test-origin"}, "count", 201.0), Entry("system_disk_persistent_read_time", "system_disk_persistent_read_time", map[string]string{"origin": "test-origin"}, "ms", 3000.0), Entry("system_disk_persistent_write_time", "system_disk_persistent_write_time", map[string]string{"origin": "test-origin"}, "ms", 4000.0), Entry("system_disk_persistent_io_time", "system_disk_persistent_io_time", map[string]string{"origin": "test-origin"}, "ms", 5000.0), @@ -193,6 +199,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_system_inode_percent", "system_disk_system_inode_percent", map[string]string{"origin": "test-origin"}, "Percent", true), Entry("system_disk_system_read_bytes", "system_disk_system_read_bytes", map[string]string{"origin": "test-origin"}, "Bytes", false), Entry("system_disk_system_write_bytes", "system_disk_system_write_bytes", map[string]string{"origin": "test-origin"}, "Bytes", false), + Entry("system_disk_system_read_count", "system_disk_system_read_count", map[string]string{"origin": "test-origin"}, "count", false), + Entry("system_disk_system_write_count", "system_disk_system_write_count", map[string]string{"origin": "test-origin"}, "count", false), Entry("system_disk_system_read_time", "system_disk_system_read_time", map[string]string{"origin": "test-origin"}, "ms", false), Entry("system_disk_system_write_time", "system_disk_system_write_time", map[string]string{"origin": "test-origin"}, "ms", false), Entry("system_disk_system_io_time", "system_disk_system_io_time", map[string]string{"origin": "test-origin"}, "ms", false), @@ -200,6 +208,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_ephemeral_inode_percent", "system_disk_ephemeral_inode_percent", map[string]string{"origin": "test-origin"}, "Percent", true), Entry("system_disk_ephemeral_read_bytes", "system_disk_ephemeral_read_bytes", map[string]string{"origin": "test-origin"}, "Bytes", false), Entry("system_disk_ephemeral_write_bytes", "system_disk_ephemeral_write_bytes", map[string]string{"origin": "test-origin"}, "Bytes", false), + Entry("system_disk_ephemeral_read_count", "system_disk_ephemeral_read_count", map[string]string{"origin": "test-origin"}, "count", false), + Entry("system_disk_ephemeral_write_count", "system_disk_ephemeral_write_count", map[string]string{"origin": "test-origin"}, "count", false), Entry("system_disk_ephemeral_read_time", "system_disk_ephemeral_read_time", map[string]string{"origin": "test-origin"}, "ms", false), Entry("system_disk_ephemeral_write_time", "system_disk_ephemeral_write_time", map[string]string{"origin": "test-origin"}, "ms", false), Entry("system_disk_ephemeral_io_time", "system_disk_ephemeral_io_time", map[string]string{"origin": "test-origin"}, "ms", false), @@ -207,6 +217,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_persistent_inode_percent", "system_disk_persistent_inode_percent", map[string]string{"origin": "test-origin"}, "Percent", true), Entry("system_disk_persistent_read_bytes", "system_disk_persistent_read_bytes", map[string]string{"origin": "test-origin"}, "Bytes", false), Entry("system_disk_persistent_write_bytes", "system_disk_persistent_write_bytes", map[string]string{"origin": "test-origin"}, "Bytes", false), + Entry("system_disk_persistent_read_count", "system_disk_persistent_read_count", map[string]string{"origin": "test-origin"}, "count", false), + Entry("system_disk_persistent_write_count", "system_disk_persistent_write_count", map[string]string{"origin": "test-origin"}, "count", false), Entry("system_disk_persistent_read_time", "system_disk_persistent_read_time", map[string]string{"origin": "test-origin"}, "ms", false), Entry("system_disk_persistent_write_time", "system_disk_persistent_write_time", map[string]string{"origin": "test-origin"}, "ms", false), Entry("system_disk_persistent_io_time", "system_disk_persistent_io_time", map[string]string{"origin": "test-origin"}, "ms", false), @@ -476,6 +488,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_system_inode_percent", "system_disk_system_inode_percent", "test-origin", "Percent"), Entry("system_disk_system_read_bytes", "system_disk_system_read_bytes", "test-origin", "Bytes"), Entry("system_disk_system_write_bytes", "system_disk_system_write_bytes", "test-origin", "Bytes"), + Entry("system_disk_system_read_count", "system_disk_system_read_count", "test-origin", "count"), + Entry("system_disk_system_write_count", "system_disk_system_write_count", "test-origin", "count"), Entry("system_disk_system_read_time", "system_disk_system_read_time", "test-origin", "ms"), Entry("system_disk_system_write_time", "system_disk_system_write_time", "test-origin", "ms"), Entry("system_disk_system_io_time", "system_disk_system_io_time", "test-origin", "ms"), @@ -483,6 +497,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_ephemeral_inode_percent", "system_disk_ephemeral_inode_percent", "test-origin", "Percent"), Entry("system_disk_ephemeral_read_bytes", "system_disk_ephemeral_read_bytes", "test-origin", "Bytes"), Entry("system_disk_ephemeral_write_bytes", "system_disk_ephemeral_write_bytes", "test-origin", "Bytes"), + Entry("system_disk_ephemeral_read_count", "system_disk_ephemeral_read_count", "test-origin", "count"), + Entry("system_disk_ephemeral_write_count", "system_disk_ephemeral_write_count", "test-origin", "count"), Entry("system_disk_ephemeral_read_time", "system_disk_ephemeral_read_time", "test-origin", "ms"), Entry("system_disk_ephemeral_write_time", "system_disk_ephemeral_write_time", "test-origin", "ms"), Entry("system_disk_ephemeral_io_time", "system_disk_ephemeral_io_time", "test-origin", "ms"), @@ -490,6 +506,8 @@ var _ = Describe("Prometheus Sender", func() { Entry("system_disk_persistent_inode_percent", "system_disk_persistent_inode_percent", "test-origin", "Percent"), Entry("system_disk_persistent_read_bytes", "system_disk_persistent_read_bytes", "test-origin", "Bytes"), Entry("system_disk_persistent_write_bytes", "system_disk_persistent_write_bytes", "test-origin", "Bytes"), + Entry("system_disk_persistent_read_count", "system_disk_persistent_read_count", "test-origin", "count"), + Entry("system_disk_persistent_write_count", "system_disk_persistent_write_count", "test-origin", "count"), Entry("system_disk_persistent_read_time", "system_disk_persistent_read_time", "test-origin", "ms"), Entry("system_disk_persistent_write_time", "system_disk_persistent_write_time", "test-origin", "ms"), Entry("system_disk_persistent_io_time", "system_disk_persistent_io_time", "test-origin", "ms"), diff --git a/src/pkg/egress/stats/stats_suite_test.go b/src/pkg/egress/stats/stats_suite_test.go index ef71dd91..636e9674 100644 --- a/src/pkg/egress/stats/stats_suite_test.go +++ b/src/pkg/egress/stats/stats_suite_test.go @@ -64,6 +64,8 @@ var ( ReadBytes: 10, WriteBytes: 20, + ReadCount: 1, + WriteCount: 2, ReadTime: 30, WriteTime: 40, IOTime: 50, @@ -77,6 +79,8 @@ var ( ReadBytes: 100, WriteBytes: 200, + ReadCount: 11, + WriteCount: 21, ReadTime: 300, WriteTime: 400, IOTime: 500, @@ -90,6 +94,8 @@ var ( ReadBytes: 1000, WriteBytes: 2000, + ReadCount: 101, + WriteCount: 201, ReadTime: 3000, WriteTime: 4000, IOTime: 5000,