summaryrefslogtreecommitdiffstats
path: root/widgets/net.go
diff options
context:
space:
mode:
authorSean E. Russell <ser@ser1.net>2020-02-18 09:44:29 -0600
committerSean E. Russell <ser@ser1.net>2020-02-18 10:23:33 -0600
commit5ccfc7cbc6f406192e1eb20d84dcfa49814e57ad (patch)
treecfc97f26f07ac52f289b32b8379a16fcedfd05f8 /widgets/net.go
parentb61ed8b81b47d686a787e9ceda190d370991167c (diff)
Adds widget metrics output
Doc cleanup Missed changes
Diffstat (limited to 'widgets/net.go')
-rw-r--r--widgets/net.go21
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