diff --git a/collectors/traffic_collector.go b/collectors/traffic_collector.go index 4dfd549..ca18d23 100644 --- a/collectors/traffic_collector.go +++ b/collectors/traffic_collector.go @@ -7,6 +7,7 @@ import ( "github.com/prometheus/client_golang/prometheus" "github.com/prometheus/common/log" "github.com/tomvil/countries" + "github.com/tomvil/go-ipprotocols" wgc "github.com/tomvil/wanguard_exporter/client" ) @@ -66,19 +67,6 @@ type Talker struct { Value int } -var protocol = map[int]string{ - 1: "ICMP", - 2: "IGMP", - 6: "TCP", - 17: "UDP", - 47: "GRE", - 50: "ESP", - 51: "AH", - 58: "ICMPv6", - 88: "EIGRP", - 89: "OSPF", -} - func NewTrafficCollector(wgclient *wgc.Client) *TrafficCollector { prefix := "wanguard_traffic_" return &TrafficCollector{ @@ -197,7 +185,11 @@ func collectTopTrafficByIPProtocol(desc *prometheus.Desc, ch chan<- prometheus.M for i := 1; i <= len(ipProtocolTop.Top); i++ { k := strconv.Itoa(i) - ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, float64(ipProtocolTop.Top[k].Value), protocol[ipProtocolTop.Top[k].IPProtocol]) + protocolName, err := ipprotocols.GetProtocolName(ipProtocolTop.Top[k].IPProtocol) + if err != nil { + log.Errorln(err.Error()) + } + ch <- prometheus.MustNewConstMetric(desc, prometheus.GaugeValue, float64(ipProtocolTop.Top[k].Value), protocolName) } defer wsync.Done() diff --git a/go.mod b/go.mod index 067ad4e..d6d5e83 100644 --- a/go.mod +++ b/go.mod @@ -1,11 +1,12 @@ module github.com/tomvil/wanguard_exporter -go 1.17 +go 1.21.5 require ( github.com/prometheus/client_golang v1.11.0 github.com/prometheus/common v0.26.0 github.com/tomvil/countries v0.0.0-20220104165753-f0d74c0c9799 + github.com/tomvil/go-ipprotocols v0.0.0-20241014123012-278a27f8a73e ) require ( diff --git a/go.sum b/go.sum index c0dc6d2..7ac4598 100644 --- a/go.sum +++ b/go.sum @@ -97,6 +97,8 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/tomvil/countries v0.0.0-20220104165753-f0d74c0c9799 h1:WsFmU9SbaxwRxrCkI45yTjGJ4NRInkoE6C2URi68gbU= github.com/tomvil/countries v0.0.0-20220104165753-f0d74c0c9799/go.mod h1:DGwxkfl84qe5kzX5D6fljA6V+MEk8PvdVGT1MnDl5Js= +github.com/tomvil/go-ipprotocols v0.0.0-20241014123012-278a27f8a73e h1:ZKGEs1IO5ZuJvoI7yfw92nRoiwwh5XiQXqnDl9CZqfU= +github.com/tomvil/go-ipprotocols v0.0.0-20241014123012-278a27f8a73e/go.mod h1:U0UPn/og7dbWylgkF76EPY1gkkNo0IDnAK3dmzigLK0= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=