remove IDS, fix metric names to standards, remove timestamp

This commit is contained in:
davidnewhall2 2019-11-17 18:13:02 -08:00
parent 59f4c9cbc0
commit ed71308550
5 changed files with 124 additions and 155 deletions

View File

@ -49,36 +49,36 @@ func descClient(ns string) *client {
"vlan", "ip", "essid", "bssid", "radio_desc"}
return &client{
Anomalies: prometheus.NewDesc(ns+"Anomalies", "Client Anomalies", labels, nil),
BytesR: prometheus.NewDesc(ns+"BytesR", "Client Data Rate", labels, nil),
CCQ: prometheus.NewDesc(ns+"CCQ", "Client Connection Quality", labels, nil),
Noise: prometheus.NewDesc(ns+"Noise", "Client AP Noise", labels, nil),
RoamCount: prometheus.NewDesc(ns+"RoamCount", "Client Roam Counter", labels, nil),
RSSI: prometheus.NewDesc(ns+"RSSI", "Client RSSI", labels, nil),
RxBytes: prometheus.NewDesc(ns+"RxBytes", "Client Receive Bytes", labels, nil),
RxBytesR: prometheus.NewDesc(ns+"RxBytesR", "Client Receive Data Rate", labels, nil),
RxPackets: prometheus.NewDesc(ns+"RxPackets", "Client Receive Packets", labels, nil),
RxRate: prometheus.NewDesc(ns+"RxRate", "Client Receive Rate", labels, nil),
Signal: prometheus.NewDesc(ns+"Signal", "Client Signal Strength", labels, nil),
TxBytes: prometheus.NewDesc(ns+"TxBytes", "Client Transmit Bytes", labels, nil),
TxBytesR: prometheus.NewDesc(ns+"TxBytesR", "Client Transmit Data Rate", labels, nil),
TxPackets: prometheus.NewDesc(ns+"TxPackets", "Client Transmit Packets", labels, nil),
TxPower: prometheus.NewDesc(ns+"TxPower", "Client Transmit Power", labels, nil),
TxRate: prometheus.NewDesc(ns+"TxRate", "Client Transmit Rate", labels, nil),
Uptime: prometheus.NewDesc(ns+"Uptime", "Client Uptime", labels, nil),
WifiTxAttempts: prometheus.NewDesc(ns+"WifiTxAttempts", "Client Wifi Transmit Attempts", labels, nil),
WiredRxBytes: prometheus.NewDesc(ns+"WiredRxBytes", "Client Wired Receive Bytes", labels, nil),
WiredRxBytesR: prometheus.NewDesc(ns+"WiredRxBytesR", "Client Wired Receive Data Rate", labels, nil),
WiredRxPackets: prometheus.NewDesc(ns+"WiredRxPackets", "Client Wired Receive Packets", labels, nil),
WiredTxBytes: prometheus.NewDesc(ns+"WiredTxBytes", "Client Wired Transmit Bytes", labels, nil),
WiredTxBytesR: prometheus.NewDesc(ns+"WiredTxBytesR", "Client Wired Data Rate", labels, nil),
WiredTxPackets: prometheus.NewDesc(ns+"WiredTxPackets", "Client Wired Transmit Packets", labels, nil),
DpiStatsApp: prometheus.NewDesc(ns+"DpiStatsApp", "Client DPI Stats App", labels, nil),
DpiStatsCat: prometheus.NewDesc(ns+"DpiStatsCat", "Client DPI Stats Cat", labels, nil),
DpiStatsRxBytes: prometheus.NewDesc(ns+"DpiStatsRxBytes", "Client DPI Stats Receive Bytes", labels, nil),
DpiStatsRxPackets: prometheus.NewDesc(ns+"DpiStatsRxPackets", "Client DPI Stats Receive Packets", labels, nil),
DpiStatsTxBytes: prometheus.NewDesc(ns+"DpiStatsTxBytes", "Client DPI Stats Transmit Bytes", labels, nil),
DpiStatsTxPackets: prometheus.NewDesc(ns+"DpiStatsTxPackets", "Client DPI Stats Transmit Packets", labels, nil),
Anomalies: prometheus.NewDesc(ns+"anomalies_total", "Client Anomalies", labels, nil),
BytesR: prometheus.NewDesc(ns+"bytes_rate", "Client Data Rate", labels, nil),
CCQ: prometheus.NewDesc(ns+"ccq", "Client Connection Quality", labels, nil),
Noise: prometheus.NewDesc(ns+"noise", "Client AP Noise", labels, nil),
RoamCount: prometheus.NewDesc(ns+"roam_total", "Client Roam Counter", labels, nil),
RSSI: prometheus.NewDesc(ns+"rssi", "Client RSSI", labels, nil),
RxBytes: prometheus.NewDesc(ns+"rx_bytes_total", "Client Receive Bytes", labels, nil),
RxBytesR: prometheus.NewDesc(ns+"rx_bytes_rate", "Client Receive Data Rate", labels, nil),
RxPackets: prometheus.NewDesc(ns+"rx_packets", "Client Receive Packets", labels, nil),
RxRate: prometheus.NewDesc(ns+"rx_rate", "Client Receive Rate", labels, nil),
Signal: prometheus.NewDesc(ns+"signal", "Client Signal Strength", labels, nil),
TxBytes: prometheus.NewDesc(ns+"tx_bytes_total", "Client Transmit Bytes", labels, nil),
TxBytesR: prometheus.NewDesc(ns+"tx_bytes_rate", "Client Transmit Data Rate", labels, nil),
TxPackets: prometheus.NewDesc(ns+"tx_packets", "Client Transmit Packets", labels, nil),
TxPower: prometheus.NewDesc(ns+"tx_power", "Client Transmit Power", labels, nil),
TxRate: prometheus.NewDesc(ns+"tx_rate", "Client Transmit Rate", labels, nil),
Uptime: prometheus.NewDesc(ns+"uptime", "Client Uptime", labels, nil),
WifiTxAttempts: prometheus.NewDesc(ns+"wifi_tx_attempts_total", "Client Wifi Transmit Attempts", labels, nil),
WiredRxBytes: prometheus.NewDesc(ns+"wired_rx_bytes_total", "Client Wired Receive Bytes", labels, nil),
WiredRxBytesR: prometheus.NewDesc(ns+"wired_rx_bytes_rate", "Client Wired Receive Data Rate", labels, nil),
WiredRxPackets: prometheus.NewDesc(ns+"wired_rx_packets_total", "Client Wired Receive Packets", labels, nil),
WiredTxBytes: prometheus.NewDesc(ns+"wired_tx_bytes_total", "Client Wired Transmit Bytes", labels, nil),
WiredTxBytesR: prometheus.NewDesc(ns+"wired_tx_bytes_rate", "Client Wired Data Rate", labels, nil),
WiredTxPackets: prometheus.NewDesc(ns+"wired_tx_packets_total", "Client Wired Transmit Packets", labels, nil),
DpiStatsApp: prometheus.NewDesc(ns+"dpi_stats_app", "Client DPI Stats App", labels, nil),
DpiStatsCat: prometheus.NewDesc(ns+"dpi_stats_cat", "Client DPI Stats Cat", labels, nil),
DpiStatsRxBytes: prometheus.NewDesc(ns+"dpi_stats_rx_bytes_total", "Client DPI Stats Receive Bytes", labels, nil),
DpiStatsRxPackets: prometheus.NewDesc(ns+"dpi_stats_rx_packets_total", "Client DPI Stats Receive Packets", labels, nil),
DpiStatsTxBytes: prometheus.NewDesc(ns+"dpi_stats_tx_bytes_total", "Client DPI Stats Transmit Bytes", labels, nil),
DpiStatsTxPackets: prometheus.NewDesc(ns+"dpi_stats_tx_packets_total", "Client DPI Stats Transmit Packets", labels, nil),
}
}
@ -106,13 +106,13 @@ func (u *unifiCollector) exportClient(c *unifi.Client) []*metricExports {
{u.Client.TxBytesR, prometheus.GaugeValue, c.TxBytesR, labels},
{u.Client.TxPackets, prometheus.CounterValue, c.TxPackets, labels},
{u.Client.TxPower, prometheus.GaugeValue, c.TxPower, labels},
{u.Client.TxRate, prometheus.CounterValue, c.TxRate, labels},
{u.Client.TxRate, prometheus.GaugeValue, c.TxRate, labels},
{u.Client.Uptime, prometheus.GaugeValue, c.Uptime, labels},
{u.Client.WifiTxAttempts, prometheus.CounterValue, c.WifiTxAttempts, labels},
{u.Client.WiredRxBytes, prometheus.CounterValue, c.WiredRxBytes, labels},
{u.Client.WiredRxBytesR, prometheus.GaugeValue, c.WiredRxBytesR, labels},
{u.Client.WiredRxPackets, prometheus.CounterValue, c.WiredRxPackets, labels},
{u.Client.WiredTxBytes, prometheus.CounterValue, c.TxRate, labels},
{u.Client.WiredTxBytes, prometheus.CounterValue, c.WiredTxBytes, labels},
{u.Client.WiredTxBytesR, prometheus.GaugeValue, c.WiredTxBytesR, labels},
{u.Client.WiredTxPackets, prometheus.CounterValue, c.WiredTxPackets, labels},
{u.Client.DpiStatsApp, prometheus.GaugeValue, c.DpiStats.App.Val, labels},

View File

@ -25,8 +25,6 @@ type UnifiCollectorCnfg struct {
CollectFn func() (*metrics.Metrics, error)
// provide a logger function if you want to run a routine *after* prometheus checks in.
LoggingFn func(*Report)
// Setting this to true will enable IDS exports.
CollectIDS bool
}
type unifiCollector struct {
@ -36,7 +34,6 @@ type unifiCollector struct {
USG *usg
USW *usw
UDM *udm
IDS *ids
Site *site
}
@ -71,7 +68,6 @@ func NewUnifiCollector(opts UnifiCollectorCnfg) prometheus.Collector {
USW: descUSW(opts.Namespace),
UDM: descUDM(opts.Namespace),
Site: descSite(opts.Namespace),
IDS: descIDS(opts.Namespace),
}
}
@ -96,9 +92,6 @@ func (u *unifiCollector) Describe(ch chan<- *prometheus.Desc) {
describe(u.USW)
describe(u.UDM)
describe(u.Site)
if u.Config.CollectIDS {
describe(u.IDS)
}
}
// Collect satisifes the prometheus Collector. This runs the input method to get
@ -122,8 +115,8 @@ func (u *unifiCollector) Collect(ch chan<- prometheus.Metric) {
}()
}
process := func(m []*metricExports, ts time.Time) {
count, errors := u.export(ch, m, ts)
process := func(m []*metricExports) {
count, errors := u.export(ch, m)
r.Total += count
r.Errors += errors
for _, d := range m {
@ -132,15 +125,10 @@ func (u *unifiCollector) Collect(ch chan<- prometheus.Metric) {
}
for _, asset := range m.Clients {
process(u.exportClient(asset), m.TS)
process(u.exportClient(asset))
}
for _, asset := range m.Sites {
process(u.exportSite(asset), m.TS)
}
if u.Config.CollectIDS {
for _, asset := range m.IDSList {
process(u.exportIDS(asset), m.TS)
}
process(u.exportSite(asset))
}
if m.Devices == nil {
@ -148,20 +136,20 @@ func (u *unifiCollector) Collect(ch chan<- prometheus.Metric) {
}
for _, asset := range m.Devices.UAPs {
process(u.exportUAP(asset), m.TS)
process(u.exportUAP(asset))
}
for _, asset := range m.Devices.USGs {
process(u.exportUSG(asset), m.TS)
process(u.exportUSG(asset))
}
for _, asset := range m.Devices.USWs {
process(u.exportUSW(asset), m.TS)
process(u.exportUSW(asset))
}
for _, asset := range m.Devices.UDMs {
process(u.exportUDM(asset), m.TS)
process(u.exportUDM(asset))
}
}
func (u *unifiCollector) export(ch chan<- prometheus.Metric, exports []*metricExports, ts time.Time) (count, errors int) {
func (u *unifiCollector) export(ch chan<- prometheus.Metric, exports []*metricExports) (count, errors int) {
for _, e := range exports {
var val float64
switch v := e.Value.(type) {
@ -179,7 +167,7 @@ func (u *unifiCollector) export(ch chan<- prometheus.Metric, exports []*metricEx
continue
}
count++
ch <- prometheus.NewMetricWithTimestamp(ts, prometheus.MustNewConstMetric(e.Desc, e.ValueType, val, e.Labels...))
ch <- prometheus.MustNewConstMetric(e.Desc, e.ValueType, val, e.Labels...)
}
return
}

View File

@ -1,19 +0,0 @@
package promunifi
import (
"golift.io/unifi"
)
/* The IDS data does not go into prometheus cleanly. This probably wont happen. */
type ids struct {
}
func descIDS(ns string) *ids {
return &ids{}
}
// exportIDS exports Intrusion Detection System Data
func (u *unifiCollector) exportIDS(i *unifi.IDS) []*metricExports {
return nil
}

View File

@ -41,30 +41,30 @@ func descSite(ns string) *site {
labels := []string{"name", "desc", "site_name", "subsystem", "status", "gwversion"}
return &site{
NumUser: prometheus.NewDesc(ns+"NumUser", "NumUser", labels, nil),
NumGuest: prometheus.NewDesc(ns+"NumGuest", "NumGuest", labels, nil),
NumIot: prometheus.NewDesc(ns+"NumIot", "NumIot", labels, nil),
TxBytesR: prometheus.NewDesc(ns+"TxBytesR", "TxBytesR", labels, nil),
RxBytesR: prometheus.NewDesc(ns+"RxBytesR", "RxBytesR", labels, nil),
NumAp: prometheus.NewDesc(ns+"NumAp", "NumAp", labels, nil),
NumAdopted: prometheus.NewDesc(ns+"NumAdopted", "NumAdopted", labels, nil),
NumDisabled: prometheus.NewDesc(ns+"NumDisabled", "NumDisabled", labels, nil),
NumDisconnected: prometheus.NewDesc(ns+"NumDisconnected", "NumDisconnected", labels, nil),
NumPending: prometheus.NewDesc(ns+"NumPending", "NumPending", labels, nil),
NumGw: prometheus.NewDesc(ns+"NumGw", "NumGw", labels, nil),
NumSw: prometheus.NewDesc(ns+"NumSw", "NumSw", labels, nil),
NumSta: prometheus.NewDesc(ns+"NumSta", "NumSta", labels, nil),
Latency: prometheus.NewDesc(ns+"Latency", "Latency", labels, nil),
Drops: prometheus.NewDesc(ns+"Drops", "Drops", labels, nil),
XputUp: prometheus.NewDesc(ns+"XputUp", "XputUp", labels, nil),
XputDown: prometheus.NewDesc(ns+"XputDown", "XputDown", labels, nil),
SpeedtestPing: prometheus.NewDesc(ns+"SpeedtestPing", "SpeedtestPing", labels, nil),
RemoteUserNumActive: prometheus.NewDesc(ns+"RemoteUserNumActive", "RemoteUserNumActive", labels, nil),
RemoteUserNumInactive: prometheus.NewDesc(ns+"RemoteUserNumInactive", "RemoteUserNumInactive", labels, nil),
RemoteUserRxBytes: prometheus.NewDesc(ns+"RemoteUserRxBytes", "RemoteUserRxBytes", labels, nil),
RemoteUserTxBytes: prometheus.NewDesc(ns+"RemoteUserTxBytes", "RemoteUserTxBytes", labels, nil),
RemoteUserRxPackets: prometheus.NewDesc(ns+"RemoteUserRxPackets", "RemoteUserRxPackets", labels, nil),
RemoteUserTxPackets: prometheus.NewDesc(ns+"RemoteUserTxPackets", "RemoteUserTxPackets", labels, nil),
NumUser: prometheus.NewDesc(ns+"user_total", "NumUser", labels, nil),
NumGuest: prometheus.NewDesc(ns+"guest_total", "NumGuest", labels, nil),
NumIot: prometheus.NewDesc(ns+"iot_total", "NumIot", labels, nil),
TxBytesR: prometheus.NewDesc(ns+"tx_bytes_rate", "TxBytesR", labels, nil),
RxBytesR: prometheus.NewDesc(ns+"rx_bytes_rate", "RxBytesR", labels, nil),
NumAp: prometheus.NewDesc(ns+"ap_total", "NumAp", labels, nil),
NumAdopted: prometheus.NewDesc(ns+"adopted_total", "NumAdopted", labels, nil),
NumDisabled: prometheus.NewDesc(ns+"disabled_total", "NumDisabled", labels, nil),
NumDisconnected: prometheus.NewDesc(ns+"disconnected_total", "NumDisconnected", labels, nil),
NumPending: prometheus.NewDesc(ns+"pending_total", "NumPending", labels, nil),
NumGw: prometheus.NewDesc(ns+"gw_total", "NumGw", labels, nil),
NumSw: prometheus.NewDesc(ns+"sw_total", "NumSw", labels, nil),
NumSta: prometheus.NewDesc(ns+"stations_total", "NumSta", labels, nil),
Latency: prometheus.NewDesc(ns+"latency", "Latency", labels, nil),
Drops: prometheus.NewDesc(ns+"drops_total", "Drops", labels, nil),
XputUp: prometheus.NewDesc(ns+"xput_up", "XputUp", labels, nil),
XputDown: prometheus.NewDesc(ns+"xput_down", "XputDown", labels, nil),
SpeedtestPing: prometheus.NewDesc(ns+"speedtest_ping", "SpeedtestPing", labels, nil),
RemoteUserNumActive: prometheus.NewDesc(ns+"remote_user_active_total", "RemoteUserNumActive", labels, nil),
RemoteUserNumInactive: prometheus.NewDesc(ns+"remote_user_inactive_total", "RemoteUserNumInactive", labels, nil),
RemoteUserRxBytes: prometheus.NewDesc(ns+"remote_user_rx_bytes_total", "RemoteUserRxBytes", labels, nil),
RemoteUserTxBytes: prometheus.NewDesc(ns+"remote_user_tx_bytes_total", "RemoteUserTxBytes", labels, nil),
RemoteUserRxPackets: prometheus.NewDesc(ns+"remote_user_rx_packets_total", "RemoteUserRxPackets", labels, nil),
RemoteUserTxPackets: prometheus.NewDesc(ns+"remote_user_tx_packets_total", "RemoteUserTxPackets", labels, nil),
}
}

View File

@ -6,36 +6,36 @@ import (
)
type usw struct {
Uptime *prometheus.Desc `json:"uptime"`
Temperature *prometheus.Desc `json:"general_temperature"`
TotalMaxPower *prometheus.Desc `json:"total_max_power"`
FanLevel *prometheus.Desc `json:"fan_level"`
TotalTxBytes *prometheus.Desc `json:"total_tx_bytes"`
TotalRxBytes *prometheus.Desc `json:"total_rx_bytes"`
TotalBytes *prometheus.Desc `json:"bytes"`
NumSta *prometheus.Desc `json:"num_sta"`
UserNumSta *prometheus.Desc `json:"user-num_sta"`
GuestNumSta *prometheus.Desc `json:"guest-num_sta"`
Uptime *prometheus.Desc
Temperature *prometheus.Desc
TotalMaxPower *prometheus.Desc
FanLevel *prometheus.Desc
TotalTxBytes *prometheus.Desc
TotalRxBytes *prometheus.Desc
TotalBytes *prometheus.Desc
NumSta *prometheus.Desc
UserNumSta *prometheus.Desc
GuestNumSta *prometheus.Desc
// Port data.
PoeCurrent *prometheus.Desc `json:"poe_current,omitempty"`
PoePower *prometheus.Desc `json:"poe_power,omitempty"`
PoeVoltage *prometheus.Desc `json:"poe_voltage,omitempty"`
RxBroadcast *prometheus.Desc `json:"rx_broadcast"`
RxBytes *prometheus.Desc `json:"rx_bytes"`
RxBytesR *prometheus.Desc `json:"rx_bytes-r"`
RxDropped *prometheus.Desc `json:"rx_dropped"`
RxErrors *prometheus.Desc `json:"rx_errors"`
RxMulticast *prometheus.Desc `json:"rx_multicast"`
RxPackets *prometheus.Desc `json:"rx_packets"`
Satisfaction *prometheus.Desc `json:"satisfaction,omitempty"`
Speed *prometheus.Desc `json:"speed"`
TxBroadcast *prometheus.Desc `json:"tx_broadcast"`
TxBytes *prometheus.Desc `json:"tx_bytes"`
TxBytesR *prometheus.Desc `json:"tx_bytes-r"`
TxDropped *prometheus.Desc `json:"tx_dropped"`
TxErrors *prometheus.Desc `json:"tx_errors"`
TxMulticast *prometheus.Desc `json:"tx_multicast"`
TxPackets *prometheus.Desc `json:"tx_packets"`
PoeCurrent *prometheus.Desc
PoePower *prometheus.Desc
PoeVoltage *prometheus.Desc
RxBroadcast *prometheus.Desc
RxBytes *prometheus.Desc
RxBytesR *prometheus.Desc
RxDropped *prometheus.Desc
RxErrors *prometheus.Desc
RxMulticast *prometheus.Desc
RxPackets *prometheus.Desc
Satisfaction *prometheus.Desc
Speed *prometheus.Desc
TxBroadcast *prometheus.Desc
TxBytes *prometheus.Desc
TxBytesR *prometheus.Desc
TxDropped *prometheus.Desc
TxErrors *prometheus.Desc
TxMulticast *prometheus.Desc
TxPackets *prometheus.Desc
}
func descUSW(ns string) *usw {
@ -52,36 +52,36 @@ func descUSW(ns string) *usw {
return &usw{
// switch data
Uptime: prometheus.NewDesc(ns+"Uptime", "Uptime", labels, nil),
Temperature: prometheus.NewDesc(ns+"Temperature", "Temperature", labels, nil),
TotalMaxPower: prometheus.NewDesc(ns+"TotalMaxPower", "TotalMaxPower", labels, nil),
FanLevel: prometheus.NewDesc(ns+"FanLevel", "FanLevel", labels, nil),
TotalTxBytes: prometheus.NewDesc(ns+"TxBytes", "TxBytes", labels, nil),
TotalRxBytes: prometheus.NewDesc(ns+"RxBytes", "RxBytes", labels, nil),
TotalBytes: prometheus.NewDesc(ns+"Bytes", "Bytes", labels, nil),
NumSta: prometheus.NewDesc(ns+"NumSta", "NumSta", labels, nil),
UserNumSta: prometheus.NewDesc(ns+"UserNumSta", "UserNumSta", labels, nil),
GuestNumSta: prometheus.NewDesc(ns+"GuestNumSta", "GuestNumSta", labels, nil),
Uptime: prometheus.NewDesc(ns+"uptime", "Uptime", labels, nil),
Temperature: prometheus.NewDesc(ns+"temperature", "Temperature", labels, nil),
TotalMaxPower: prometheus.NewDesc(ns+"max_power_total", "TotalMaxPower", labels, nil),
FanLevel: prometheus.NewDesc(ns+"fan_level", "FanLevel", labels, nil),
TotalTxBytes: prometheus.NewDesc(ns+"tx_bytes_total", "TxBytes", labels, nil),
TotalRxBytes: prometheus.NewDesc(ns+"rx_bytes_total", "RxBytes", labels, nil),
TotalBytes: prometheus.NewDesc(ns+"bytes_total", "Bytes", labels, nil),
NumSta: prometheus.NewDesc(ns+"stations_total", "NumSta", labels, nil),
UserNumSta: prometheus.NewDesc(ns+"stations_user_total", "UserNumSta", labels, nil),
GuestNumSta: prometheus.NewDesc(ns+"stations_guest_total", "GuestNumSta", labels, nil),
// per-port data
PoeCurrent: prometheus.NewDesc(pns+"PoeCurrent", "PoeCurrent", labelP, nil),
PoePower: prometheus.NewDesc(pns+"PoePower", "PoePower", labelP, nil),
PoeVoltage: prometheus.NewDesc(pns+"PoeVoltage", "PoeVoltage", labelP, nil),
RxBroadcast: prometheus.NewDesc(pns+"RxBroadcast", "RxBroadcast", labelP, nil),
RxBytes: prometheus.NewDesc(pns+"RxBytes", "RxBytes", labelP, nil),
RxBytesR: prometheus.NewDesc(pns+"RxBytesR", "RxBytesR", labelP, nil),
RxDropped: prometheus.NewDesc(pns+"RxDropped", "RxDropped", labelP, nil),
RxErrors: prometheus.NewDesc(pns+"RxErrors", "RxErrors", labelP, nil),
RxMulticast: prometheus.NewDesc(pns+"RxMulticast", "RxMulticast", labelP, nil),
RxPackets: prometheus.NewDesc(pns+"RxPackets", "RxPackets", labelP, nil),
Satisfaction: prometheus.NewDesc(pns+"Satisfaction", "Satisfaction", labelP, nil),
Speed: prometheus.NewDesc(pns+"Speed", "Speed", labelP, nil),
TxBroadcast: prometheus.NewDesc(pns+"TxBroadcast", "TxBroadcast", labelP, nil),
TxBytes: prometheus.NewDesc(pns+"TxBytes", "TxBytes", labelP, nil),
TxBytesR: prometheus.NewDesc(pns+"TxBytesR", "TxBytesR", labelP, nil),
TxDropped: prometheus.NewDesc(pns+"TxDropped", "TxDropped", labelP, nil),
TxErrors: prometheus.NewDesc(pns+"TxErrors", "TxErrors", labelP, nil),
TxMulticast: prometheus.NewDesc(pns+"TxMulticast", "TxMulticast", labelP, nil),
TxPackets: prometheus.NewDesc(pns+"TxPackets", "TxPackets", labelP, nil),
PoeCurrent: prometheus.NewDesc(pns+"poe_current", "PoeCurrent", labelP, nil),
PoePower: prometheus.NewDesc(pns+"poe_power", "PoePower", labelP, nil),
PoeVoltage: prometheus.NewDesc(pns+"poe_voltage", "PoeVoltage", labelP, nil),
RxBroadcast: prometheus.NewDesc(pns+"rx_broadcast_total", "RxBroadcast", labelP, nil),
RxBytes: prometheus.NewDesc(pns+"rx_bytes_total", "RxBytes", labelP, nil),
RxBytesR: prometheus.NewDesc(pns+"rx_bytes_rate", "RxBytesR", labelP, nil),
RxDropped: prometheus.NewDesc(pns+"rx_dropped_total", "RxDropped", labelP, nil),
RxErrors: prometheus.NewDesc(pns+"rx_errors_total", "RxErrors", labelP, nil),
RxMulticast: prometheus.NewDesc(pns+"rx_multicast_total", "RxMulticast", labelP, nil),
RxPackets: prometheus.NewDesc(pns+"rx_packets_total", "RxPackets", labelP, nil),
Satisfaction: prometheus.NewDesc(pns+"satisfaction", "Satisfaction", labelP, nil),
Speed: prometheus.NewDesc(pns+"speed", "Speed", labelP, nil),
TxBroadcast: prometheus.NewDesc(pns+"tx_broadcast_total", "TxBroadcast", labelP, nil),
TxBytes: prometheus.NewDesc(pns+"tx_bytes_total", "TxBytes", labelP, nil),
TxBytesR: prometheus.NewDesc(pns+"tx_bytes_rate", "TxBytesR", labelP, nil),
TxDropped: prometheus.NewDesc(pns+"tx_dropped_total", "TxDropped", labelP, nil),
TxErrors: prometheus.NewDesc(pns+"tx_errors_total", "TxErrors", labelP, nil),
TxMulticast: prometheus.NewDesc(pns+"tx_multicast_total", "TxMulticast", labelP, nil),
TxPackets: prometheus.NewDesc(pns+"tx_packets_total", "TxPackets", labelP, nil),
}
}