diff options
author | Sean E. Russell <ser@ser1.net> | 2020-02-18 09:44:29 -0600 |
---|---|---|
committer | Sean E. Russell <ser@ser1.net> | 2020-02-18 10:23:33 -0600 |
commit | 5ccfc7cbc6f406192e1eb20d84dcfa49814e57ad (patch) | |
tree | cfc97f26f07ac52f289b32b8379a16fcedfd05f8 /widgets/net.go | |
parent | b61ed8b81b47d686a787e9ceda190d370991167c (diff) |
Adds widget metrics output
Doc cleanup
Missed changes
Diffstat (limited to 'widgets/net.go')
-rw-r--r-- | widgets/net.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/widgets/net.go b/widgets/net.go index c4ac8e8..ae14e8a 100644 --- a/widgets/net.go +++ b/widgets/net.go @@ -6,6 +6,7 @@ import ( "strings" "time" + "github.com/prometheus/client_golang/prometheus" psNet "github.com/shirou/gopsutil/net" ui "github.com/xxxserxxx/gotop/termui" @@ -25,6 +26,8 @@ type NetWidget struct { totalBytesRecv uint64 totalBytesSent uint64 NetInterface []string + sentMetric prometheus.Counter + recvMetric prometheus.Counter } func NewNetWidget(netInterface string) *NetWidget { @@ -58,6 +61,22 @@ func NewNetWidget(netInterface string) *NetWidget { return self } +func (b *NetWidget) EnableMetric() { + b.recvMetric = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: "gotop", + Subsystem: "net", + Name: "recv", + }) + prometheus.MustRegister(b.recvMetric) + + b.sentMetric = prometheus.NewCounter(prometheus.CounterOpts{ + Namespace: "gotop", + Subsystem: "net", + Name: "sent", + }) + prometheus.MustRegister(b.sentMetric) +} + func (self *NetWidget) update() { interfaces, err := psNet.IOCounters(true) if err != nil { @@ -114,6 +133,8 @@ func (self *NetWidget) update() { self.Lines[0].Data = append(self.Lines[0].Data, int(recentBytesRecv)) self.Lines[1].Data = append(self.Lines[1].Data, int(recentBytesSent)) + self.sentMetric.Add(float64(recentBytesSent)) + self.recvMetric.Add(float64(recentBytesRecv)) } // used in later calls to update |