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,60 +73,84 @@ 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.Val,
"wan1_bytes-r": u.Wan1.BytesR, "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. "wan1_gateway": u.Wan1.Gateway,
"wan1_gateway": u.Wan1.Gateway, "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.Val,
"wan1_max_speed": u.Wan1.MaxSpeed, "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.Val,
"wan1_rx_bytes-r": u.Wan1.RxBytesR, "wan1_rx_dropped": u.Wan1.RxDropped.Val,
"wan1_rx_dropped": u.Wan1.RxDropped, "wan1_rx_errors": u.Wan1.RxErrors.Val,
"wan1_rx_errors": u.Wan1.RxErrors, "wan1_rx_multicast": u.Wan1.RxMulticast.Val,
"wan1_rx_multicast": u.Wan1.RxMulticast, "wan1_rx_packets": u.Wan1.RxPackets.Val,
"wan1_rx_packets": u.Wan1.RxPackets, "wan1_type": u.Wan1.Type,
"wan1_type": u.Wan1.Type, "wan1_speed": u.Wan1.Speed.Val,
"wan1_speed": u.Wan1.Speed, "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.Val,
"wan1_tx_bytes-r": u.Wan1.TxBytesR, "wan1_tx_dropped": u.Wan1.TxDropped.Val,
"wan1_tx_dropped": u.Wan1.TxDropped, "wan1_tx_errors": u.Wan1.TxErrors.Val,
"wan1_tx_errors": u.Wan1.TxErrors, "wan1_tx_packets": u.Wan1.TxPackets.Val,
"wan1_tx_packets": u.Wan1.TxPackets, "wan2_bytes-r": u.Wan2.BytesR.Val,
"loadavg_1": u.SysStats.Loadavg1, "wan2_enable": u.Wan2.Enable.Val,
"loadavg_5": u.SysStats.Loadavg5, "wan2_full_duplex": u.Wan2.FullDuplex.Val,
"loadavg_15": u.SysStats.Loadavg15, "wan2_purpose": "uplink", // because it should have a purpose.
"mem_used": u.SysStats.MemUsed, "wan2_gateway": u.Wan2.Gateway,
"mem_buffer": u.SysStats.MemBuffer, "wan2_ifname": u.Wan2.Ifname,
"mem_total": u.SysStats.MemTotal, "wan2_ip": u.Wan2.IP,
"cpu": u.SystemStats.CPU, "wan2_mac": u.Wan2.Mac,
"mem": u.SystemStats.Mem, "wan2_max_speed": u.Wan2.MaxSpeed.Val,
"system_uptime": u.SystemStats.Uptime, "wan2_name": u.Wan2.Name,
"stat_duration": u.Stat.Duration, "wan2_netmask": u.Wan2.Netmask,
"stat_datetime": u.Stat.Datetime, "wan2_rx_bytes": u.Wan2.RxBytes.Val,
"gw": u.Stat.Gw, "wan2_rx_bytes-r": u.Wan2.RxBytesR.Val,
"false": "false", // to fill holes in graphs. "wan2_rx_dropped": u.Wan2.RxDropped.Val,
"lan-rx_bytes": u.Stat.LanRxBytes, "wan2_rx_errors": u.Wan2.RxErrors.Val,
"lan-rx_packets": u.Stat.LanRxPackets, "wan2_rx_multicast": u.Wan2.RxMulticast.Val,
"lan-tx_bytes": u.Stat.LanTxBytes, "wan2_rx_packets": u.Wan2.RxPackets.Val,
"lan-tx_packets": u.Stat.LanTxPackets, "wan2_type": u.Wan2.Type,
"wan-rx_bytes": u.Stat.WanRxBytes, "wan2_speed": u.Wan2.Speed.Val,
"wan-rx_dropped": u.Stat.WanRxDropped, "wan2_up": u.Wan2.Up.Val,
"wan-rx_packets": u.Stat.WanRxPackets, "wan2_tx_bytes": u.Wan2.TxBytes.Val,
"wan-tx_bytes": u.Stat.WanTxBytes, "wan2_tx_bytes-r": u.Wan2.TxBytesR.Val,
"wan-tx_packets": u.Stat.WanTxPackets, "wan2_tx_dropped": u.Wan2.TxDropped.Val,
"uplink_name": u.Uplink.Name, "wan2_tx_errors": u.Wan2.TxErrors.Val,
"uplink_latency": u.Uplink.Latency, "wan2_tx_packets": u.Wan2.TxPackets.Val,
"uplink_speed": u.Uplink.Speed, "loadavg_1": u.SysStats.Loadavg1,
"uplink_num_ports": u.Uplink.NumPort, "loadavg_5": u.SysStats.Loadavg5,
"uplink_max_speed": u.Uplink.MaxSpeed, "loadavg_15": u.SysStats.Loadavg15,
"mem_used": u.SysStats.MemUsed,
"mem_buffer": u.SysStats.MemBuffer,
"mem_total": u.SysStats.MemTotal,
"cpu": u.SystemStats.CPU,
"mem": u.SystemStats.Mem,
"system_uptime": u.SystemStats.Uptime,
"stat_duration": u.Stat.Duration,
"stat_datetime": u.Stat.Datetime,
"gw": u.Stat.Gw,
"false": "false", // to fill holes in graphs.
"lan-rx_bytes": u.Stat.LanRxBytes,
"lan-rx_packets": u.Stat.LanRxPackets,
"lan-tx_bytes": u.Stat.LanTxBytes,
"lan-tx_packets": u.Stat.LanTxPackets,
"wan-rx_bytes": u.Stat.WanRxBytes,
"wan-rx_dropped": u.Stat.WanRxDropped,
"wan-rx_packets": u.Stat.WanRxPackets,
"wan-tx_bytes": u.Stat.WanTxBytes,
"wan-tx_packets": u.Stat.WanTxPackets,
"uplink_name": u.Uplink.Name,
"uplink_latency": u.Uplink.Latency,
"uplink_speed": u.Uplink.Speed,
"uplink_num_ports": u.Uplink.NumPort,
"uplink_max_speed": u.Uplink.MaxSpeed,
} }
pt, err := influx.NewPoint("usg", tags, fields, time.Now()) pt, err := influx.NewPoint("usg", tags, fields, time.Now())
if err != nil { if err != nil {

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"`