Add wan2 metrics to InfluxDB.

This commit is contained in:
David Newhall II 2019-06-17 12:46:19 -07:00
parent 910304e7f6
commit 562e244451
2 changed files with 104 additions and 78 deletions

View File

@ -41,6 +41,8 @@ func (u USG) Points() ([]*influx.Point, error) {
"version_incompatible": u.VersionIncompatible.Txt, "version_incompatible": u.VersionIncompatible.Txt,
"usg_caps": strconv.FormatFloat(u.UsgCaps, 'f', 6, 64), "usg_caps": strconv.FormatFloat(u.UsgCaps, 'f', 6, 64),
"speedtest-status-saved": u.SpeedtestStatusSaved.Txt, "speedtest-status-saved": u.SpeedtestStatusSaved.Txt,
"wan1_up": u.Wan2.Up.Txt,
"wan2_up": u.Wan2.Up.Txt,
} }
fields := map[string]interface{}{ fields := map[string]interface{}{
"ip": u.IP, "ip": u.IP,
@ -71,9 +73,8 @@ func (u USG) Points() ([]*influx.Point, error) {
"speedtest-status_upload": u.SpeedtestStatus.StatusUpload, "speedtest-status_upload": u.SpeedtestStatus.StatusUpload,
"speedtest-status_xput_download": u.SpeedtestStatus.XputDownload, "speedtest-status_xput_download": u.SpeedtestStatus.XputDownload,
"speedtest-status_xput_upload": u.SpeedtestStatus.XputUpload, "speedtest-status_xput_upload": u.SpeedtestStatus.XputUpload,
// have two WANs? mmmm, go ahead and add it. ;)
"config_network_wan_type": u.ConfigNetworkWan.Type, "config_network_wan_type": u.ConfigNetworkWan.Type,
"wan1_bytes-r": u.Wan1.BytesR, "wan1_bytes-r": u.Wan1.BytesR.Val,
"wan1_enable": u.Wan1.Enable.Val, "wan1_enable": u.Wan1.Enable.Val,
"wan1_full_duplex": u.Wan1.FullDuplex.Val, "wan1_full_duplex": u.Wan1.FullDuplex.Val,
"wan1_purpose": "uplink", // because it should have a purpose. "wan1_purpose": "uplink", // because it should have a purpose.
@ -81,23 +82,48 @@ func (u USG) Points() ([]*influx.Point, error) {
"wan1_ifname": u.Wan1.Ifname, "wan1_ifname": u.Wan1.Ifname,
"wan1_ip": u.Wan1.IP, "wan1_ip": u.Wan1.IP,
"wan1_mac": u.Wan1.Mac, "wan1_mac": u.Wan1.Mac,
"wan1_max_speed": u.Wan1.MaxSpeed, "wan1_max_speed": u.Wan1.MaxSpeed.Val,
"wan1_name": u.Wan1.Name, "wan1_name": u.Wan1.Name,
"wan1_netmask": u.Wan1.Netmask, "wan1_netmask": u.Wan1.Netmask,
"wan1_rx_bytes": u.Wan1.RxBytes.Val, "wan1_rx_bytes": u.Wan1.RxBytes.Val,
"wan1_rx_bytes-r": u.Wan1.RxBytesR, "wan1_rx_bytes-r": u.Wan1.RxBytesR.Val,
"wan1_rx_dropped": u.Wan1.RxDropped, "wan1_rx_dropped": u.Wan1.RxDropped.Val,
"wan1_rx_errors": u.Wan1.RxErrors, "wan1_rx_errors": u.Wan1.RxErrors.Val,
"wan1_rx_multicast": u.Wan1.RxMulticast, "wan1_rx_multicast": u.Wan1.RxMulticast.Val,
"wan1_rx_packets": u.Wan1.RxPackets, "wan1_rx_packets": u.Wan1.RxPackets.Val,
"wan1_type": u.Wan1.Type, "wan1_type": u.Wan1.Type,
"wan1_speed": u.Wan1.Speed, "wan1_speed": u.Wan1.Speed.Val,
"wan1_up": u.Wan1.Up.Val, "wan1_up": u.Wan1.Up.Val,
"wan1_tx_bytes": u.Wan1.TxBytes.Val, "wan1_tx_bytes": u.Wan1.TxBytes.Val,
"wan1_tx_bytes-r": u.Wan1.TxBytesR, "wan1_tx_bytes-r": u.Wan1.TxBytesR.Val,
"wan1_tx_dropped": u.Wan1.TxDropped, "wan1_tx_dropped": u.Wan1.TxDropped.Val,
"wan1_tx_errors": u.Wan1.TxErrors, "wan1_tx_errors": u.Wan1.TxErrors.Val,
"wan1_tx_packets": u.Wan1.TxPackets, "wan1_tx_packets": u.Wan1.TxPackets.Val,
"wan2_bytes-r": u.Wan2.BytesR.Val,
"wan2_enable": u.Wan2.Enable.Val,
"wan2_full_duplex": u.Wan2.FullDuplex.Val,
"wan2_purpose": "uplink", // because it should have a purpose.
"wan2_gateway": u.Wan2.Gateway,
"wan2_ifname": u.Wan2.Ifname,
"wan2_ip": u.Wan2.IP,
"wan2_mac": u.Wan2.Mac,
"wan2_max_speed": u.Wan2.MaxSpeed.Val,
"wan2_name": u.Wan2.Name,
"wan2_netmask": u.Wan2.Netmask,
"wan2_rx_bytes": u.Wan2.RxBytes.Val,
"wan2_rx_bytes-r": u.Wan2.RxBytesR.Val,
"wan2_rx_dropped": u.Wan2.RxDropped.Val,
"wan2_rx_errors": u.Wan2.RxErrors.Val,
"wan2_rx_multicast": u.Wan2.RxMulticast.Val,
"wan2_rx_packets": u.Wan2.RxPackets.Val,
"wan2_type": u.Wan2.Type,
"wan2_speed": u.Wan2.Speed.Val,
"wan2_up": u.Wan2.Up.Val,
"wan2_tx_bytes": u.Wan2.TxBytes.Val,
"wan2_tx_bytes-r": u.Wan2.TxBytesR.Val,
"wan2_tx_dropped": u.Wan2.TxDropped.Val,
"wan2_tx_errors": u.Wan2.TxErrors.Val,
"wan2_tx_packets": u.Wan2.TxPackets.Val,
"loadavg_1": u.SysStats.Loadavg1, "loadavg_1": u.SysStats.Loadavg1,
"loadavg_5": u.SysStats.Loadavg5, "loadavg_5": u.SysStats.Loadavg5,
"loadavg_15": u.SysStats.Loadavg15, "loadavg_15": u.SysStats.Loadavg15,

View File

@ -206,7 +206,7 @@ type USG struct {
Version string `json:"version"` Version string `json:"version"`
VersionIncompatible FlexBool `json:"version_incompatible"` VersionIncompatible FlexBool `json:"version_incompatible"`
Wan1 struct { Wan1 struct {
BytesR float64 `json:"bytes-r"` BytesR FlexInt `json:"bytes-r"`
DNS []string `json:"dns"` DNS []string `json:"dns"`
Enable FlexBool `json:"enable"` Enable FlexBool `json:"enable"`
FullDuplex FlexBool `json:"full_duplex"` FullDuplex FlexBool `json:"full_duplex"`
@ -214,26 +214,26 @@ type USG struct {
Ifname string `json:"ifname"` Ifname string `json:"ifname"`
IP string `json:"ip"` IP string `json:"ip"`
Mac string `json:"mac"` Mac string `json:"mac"`
MaxSpeed float64 `json:"max_speed"` MaxSpeed FlexInt `json:"max_speed"`
Name string `json:"name"` Name string `json:"name"`
Netmask string `json:"netmask"` Netmask string `json:"netmask"`
RxBytes FlexInt `json:"rx_bytes"` RxBytes FlexInt `json:"rx_bytes"`
RxBytesR float64 `json:"rx_bytes-r"` RxBytesR FlexInt `json:"rx_bytes-r"`
RxDropped float64 `json:"rx_dropped"` RxDropped FlexInt `json:"rx_dropped"`
RxErrors float64 `json:"rx_errors"` RxErrors FlexInt `json:"rx_errors"`
RxMulticast float64 `json:"rx_multicast"` RxMulticast FlexInt `json:"rx_multicast"`
RxPackets float64 `json:"rx_packets"` RxPackets FlexInt `json:"rx_packets"`
Speed float64 `json:"speed"` Speed FlexInt `json:"speed"`
TxBytes FlexInt `json:"tx_bytes"` TxBytes FlexInt `json:"tx_bytes"`
TxBytesR float64 `json:"tx_bytes-r"` TxBytesR FlexInt `json:"tx_bytes-r"`
TxDropped float64 `json:"tx_dropped"` TxDropped FlexInt `json:"tx_dropped"`
TxErrors float64 `json:"tx_errors"` TxErrors FlexInt `json:"tx_errors"`
TxPackets float64 `json:"tx_packets"` TxPackets FlexInt `json:"tx_packets"`
Type string `json:"type"` Type string `json:"type"`
Up FlexBool `json:"up"` Up FlexBool `json:"up"`
} `json:"wan1"` } `json:"wan1"`
Wan2 struct { Wan2 struct {
BytesR float64 `json:"bytes-r"` BytesR FlexInt `json:"bytes-r"`
DNS []string `json:"dns"` DNS []string `json:"dns"`
Enable FlexBool `json:"enable"` Enable FlexBool `json:"enable"`
FullDuplex FlexBool `json:"full_duplex"` FullDuplex FlexBool `json:"full_duplex"`
@ -241,21 +241,21 @@ type USG struct {
Ifname string `json:"ifname"` Ifname string `json:"ifname"`
IP string `json:"ip"` IP string `json:"ip"`
Mac string `json:"mac"` Mac string `json:"mac"`
MaxSpeed float64 `json:"max_speed"` MaxSpeed FlexInt `json:"max_speed"`
Name string `json:"name"` Name string `json:"name"`
Netmask string `json:"netmask"` Netmask string `json:"netmask"`
RxBytes FlexInt `json:"rx_bytes"` RxBytes FlexInt `json:"rx_bytes"`
RxBytesR float64 `json:"rx_bytes-r"` RxBytesR FlexInt `json:"rx_bytes-r"`
RxDropped float64 `json:"rx_dropped"` RxDropped FlexInt `json:"rx_dropped"`
RxErrors float64 `json:"rx_errors"` RxErrors FlexInt `json:"rx_errors"`
RxMulticast float64 `json:"rx_multicast"` RxMulticast FlexInt `json:"rx_multicast"`
RxPackets float64 `json:"rx_packets"` RxPackets FlexInt `json:"rx_packets"`
Speed float64 `json:"speed"` Speed FlexInt `json:"speed"`
TxBytes FlexInt `json:"tx_bytes"` TxBytes FlexInt `json:"tx_bytes"`
TxBytesR float64 `json:"tx_bytes-r"` TxBytesR FlexInt `json:"tx_bytes-r"`
TxDropped float64 `json:"tx_dropped"` TxDropped FlexInt `json:"tx_dropped"`
TxErrors float64 `json:"tx_errors"` TxErrors FlexInt `json:"tx_errors"`
TxPackets float64 `json:"tx_packets"` TxPackets FlexInt `json:"tx_packets"`
Type string `json:"type"` Type string `json:"type"`
Up FlexBool `json:"up"` Up FlexBool `json:"up"`
} `json:"wan2"` } `json:"wan2"`