add site code
This commit is contained in:
parent
f5b67ffb7f
commit
ab86d34cf2
|
|
@ -104,7 +104,7 @@ is provided so the application can be easily adapted to any environment.
|
||||||
* Value: prometheus
|
* Value: prometheus
|
||||||
In this mode the application opens an http interface and exports the
|
In this mode the application opens an http interface and exports the
|
||||||
measurements at /metrics for collection by prometheus. Enabling this
|
measurements at /metrics for collection by prometheus. Enabling this
|
||||||
mode disables InfluxDB usage entirely.
|
mode disables InfluxDB usage entirely. This is BETA.
|
||||||
|
|
||||||
http_listen default: 0.0.0.0:61317
|
http_listen default: 0.0.0.0:61317
|
||||||
This option controls the IP and port the http listener uses when the
|
This option controls the IP and port the http listener uses when the
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ quiet = false
|
||||||
#
|
#
|
||||||
# Prometheus mode opens an HTTP server on port 61317 and exports the metrics at
|
# Prometheus mode opens an HTTP server on port 61317 and exports the metrics at
|
||||||
# /metrics for polling collection by a prometheus server. This disables influxdb.
|
# /metrics for polling collection by a prometheus server. This disables influxdb.
|
||||||
|
# IMPORTANT: The prometheus mode is still beta and doesn't work very well.
|
||||||
mode = "influx"
|
mode = "influx"
|
||||||
|
|
||||||
# This controls on which ip and port /metrics is exported when mode is "prometheus".
|
# This controls on which ip and port /metrics is exported when mode is "prometheus".
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@
|
||||||
#
|
#
|
||||||
# Prometheus mode opens an HTTP server on port 61317 and exports the metrics at
|
# Prometheus mode opens an HTTP server on port 61317 and exports the metrics at
|
||||||
# /metrics for polling collection by a prometheus server. This disables influxdb.
|
# /metrics for polling collection by a prometheus server. This disables influxdb.
|
||||||
|
# IMPORTANT: The prometheus mode is still beta and doesn't work very well.
|
||||||
-->
|
-->
|
||||||
<mode>influx</mode>
|
<mode>influx</mode>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ quiet: false
|
||||||
#
|
#
|
||||||
# Prometheus mode opens an HTTP server on port 61317 and exports the metrics at
|
# Prometheus mode opens an HTTP server on port 61317 and exports the metrics at
|
||||||
# /metrics for polling collection by a prometheus server. This disables influxdb.
|
# /metrics for polling collection by a prometheus server. This disables influxdb.
|
||||||
|
# IMPORTANT: The prometheus mode is still beta and doesn't work very well.
|
||||||
mode: "influx"
|
mode: "influx"
|
||||||
|
|
||||||
# This controls on which ip and port /metrics is exported when mode is "prometheus".
|
# This controls on which ip and port /metrics is exported when mode is "prometheus".
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# prometheus
|
# prometheus
|
||||||
|
|
||||||
This package provides the methods to turn UniFi measurements into prometheus
|
This package provides the interface to turn UniFi measurements into prometheus
|
||||||
exported metrics.
|
exported metrics. Requires the poller package for actual UniFi data collection.
|
||||||
|
|
|
||||||
|
|
@ -47,123 +47,123 @@ func descClient(ns string) *client {
|
||||||
|
|
||||||
return &client{
|
return &client{
|
||||||
Anomalies: prometheus.NewDesc(
|
Anomalies: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "anomalies"),
|
prometheus.BuildFQName(ns, ns2, "Anomalies"),
|
||||||
"Client Anomalies", labels, nil,
|
"Client Anomalies", labels, nil,
|
||||||
),
|
),
|
||||||
BytesR: prometheus.NewDesc(
|
BytesR: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "bytesr"),
|
prometheus.BuildFQName(ns, ns2, "BytesR"),
|
||||||
"Client Data Rate", labels, nil,
|
"Client Data Rate", labels, nil,
|
||||||
),
|
),
|
||||||
CCQ: prometheus.NewDesc(
|
CCQ: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "ccq"),
|
prometheus.BuildFQName(ns, ns2, "CCQ"),
|
||||||
"Client Connection Quality", labels, nil,
|
"Client Connection Quality", labels, nil,
|
||||||
),
|
),
|
||||||
Noise: prometheus.NewDesc(
|
Noise: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "noise"),
|
prometheus.BuildFQName(ns, ns2, "Noise"),
|
||||||
"Client AP Noise", labels, nil,
|
"Client AP Noise", labels, nil,
|
||||||
),
|
),
|
||||||
RoamCount: prometheus.NewDesc(
|
RoamCount: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "roamcount"),
|
prometheus.BuildFQName(ns, ns2, "RoamCount"),
|
||||||
"Client Roam Counter", labels, nil,
|
"Client Roam Counter", labels, nil,
|
||||||
),
|
),
|
||||||
RSSI: prometheus.NewDesc(
|
RSSI: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "rssi"),
|
prometheus.BuildFQName(ns, ns2, "RSSI"),
|
||||||
"Client RSSI", labels, nil,
|
"Client RSSI", labels, nil,
|
||||||
),
|
),
|
||||||
RxBytes: prometheus.NewDesc(
|
RxBytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "rxbytes"),
|
prometheus.BuildFQName(ns, ns2, "RxBytes"),
|
||||||
"Client Receive Bytes", labels, nil,
|
"Client Receive Bytes", labels, nil,
|
||||||
),
|
),
|
||||||
RxBytesR: prometheus.NewDesc(
|
RxBytesR: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "rxbytesr"),
|
prometheus.BuildFQName(ns, ns2, "RxBytesR"),
|
||||||
"Client Receive Data Rate", labels, nil,
|
"Client Receive Data Rate", labels, nil,
|
||||||
),
|
),
|
||||||
RxPackets: prometheus.NewDesc(
|
RxPackets: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "rxpackets"),
|
prometheus.BuildFQName(ns, ns2, "RxPackets"),
|
||||||
"Client Receive Packets", labels, nil,
|
"Client Receive Packets", labels, nil,
|
||||||
),
|
),
|
||||||
RxRate: prometheus.NewDesc(
|
RxRate: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "rxrate"),
|
prometheus.BuildFQName(ns, ns2, "RxRate"),
|
||||||
"Client Receive Rate", labels, nil,
|
"Client Receive Rate", labels, nil,
|
||||||
),
|
),
|
||||||
Signal: prometheus.NewDesc(
|
Signal: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "signal"),
|
prometheus.BuildFQName(ns, ns2, "Signal"),
|
||||||
"Client Signal Strength", labels, nil,
|
"Client Signal Strength", labels, nil,
|
||||||
),
|
),
|
||||||
TxBytes: prometheus.NewDesc(
|
TxBytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "txbytes"),
|
prometheus.BuildFQName(ns, ns2, "TxBytes"),
|
||||||
"Client Transmit Bytes", labels, nil,
|
"Client Transmit Bytes", labels, nil,
|
||||||
),
|
),
|
||||||
TxBytesR: prometheus.NewDesc(
|
TxBytesR: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "txbytesr"),
|
prometheus.BuildFQName(ns, ns2, "TxBytesR"),
|
||||||
"Client Transmit Data Rate", labels, nil,
|
"Client Transmit Data Rate", labels, nil,
|
||||||
),
|
),
|
||||||
TxPackets: prometheus.NewDesc(
|
TxPackets: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "txpackets"),
|
prometheus.BuildFQName(ns, ns2, "TxPackets"),
|
||||||
"Client Transmit Packets", labels, nil,
|
"Client Transmit Packets", labels, nil,
|
||||||
),
|
),
|
||||||
TxPower: prometheus.NewDesc(
|
TxPower: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "txpower"),
|
prometheus.BuildFQName(ns, ns2, "TxPower"),
|
||||||
"Client Transmit Power", labels, nil,
|
"Client Transmit Power", labels, nil,
|
||||||
),
|
),
|
||||||
TxRate: prometheus.NewDesc(
|
TxRate: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "txrate"),
|
prometheus.BuildFQName(ns, ns2, "TxRate"),
|
||||||
"Client Transmit Rate", labels, nil,
|
"Client Transmit Rate", labels, nil,
|
||||||
),
|
),
|
||||||
Uptime: prometheus.NewDesc(
|
Uptime: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "uptime"),
|
prometheus.BuildFQName(ns, ns2, "Uptime"),
|
||||||
"Client Uptime", labels, nil,
|
"Client Uptime", labels, nil,
|
||||||
),
|
),
|
||||||
WifiTxAttempts: prometheus.NewDesc(
|
WifiTxAttempts: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wifitxattempts"),
|
prometheus.BuildFQName(ns, ns2, "WifiTxAttempts"),
|
||||||
"Client Wifi Transmit Attempts", labels, nil,
|
"Client Wifi Transmit Attempts", labels, nil,
|
||||||
),
|
),
|
||||||
WiredRxBytes: prometheus.NewDesc(
|
WiredRxBytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wiredrxbytes"),
|
prometheus.BuildFQName(ns, ns2, "WiredRxBytes"),
|
||||||
"Client Wired Receive Bytes", labels, nil,
|
"Client Wired Receive Bytes", labels, nil,
|
||||||
),
|
),
|
||||||
WiredRxBytesR: prometheus.NewDesc(
|
WiredRxBytesR: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wiredrxbytesr"),
|
prometheus.BuildFQName(ns, ns2, "WiredRxBytesR"),
|
||||||
"Client Wired Receive Data Rate", labels, nil,
|
"Client Wired Receive Data Rate", labels, nil,
|
||||||
),
|
),
|
||||||
WiredRxPackets: prometheus.NewDesc(
|
WiredRxPackets: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wiredrxpackets"),
|
prometheus.BuildFQName(ns, ns2, "WiredRxPackets"),
|
||||||
"Client Wired Receive Packets", labels, nil,
|
"Client Wired Receive Packets", labels, nil,
|
||||||
),
|
),
|
||||||
WiredTxBytes: prometheus.NewDesc(
|
WiredTxBytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wiredtxbytes"),
|
prometheus.BuildFQName(ns, ns2, "WiredTxBytes"),
|
||||||
"Client Wired Transmit Bytes", labels, nil,
|
"Client Wired Transmit Bytes", labels, nil,
|
||||||
),
|
),
|
||||||
WiredTxBytesR: prometheus.NewDesc(
|
WiredTxBytesR: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wiredtxbytesr"),
|
prometheus.BuildFQName(ns, ns2, "WiredTxBytesR"),
|
||||||
"Client Wired Data Rate", labels, nil,
|
"Client Wired Data Rate", labels, nil,
|
||||||
),
|
),
|
||||||
WiredTxPackets: prometheus.NewDesc(
|
WiredTxPackets: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "wiredtxpackets"),
|
prometheus.BuildFQName(ns, ns2, "WiredTxPackets"),
|
||||||
"Client Wired Transmit Packets", labels, nil,
|
"Client Wired Transmit Packets", labels, nil,
|
||||||
),
|
),
|
||||||
DpiStatsApp: prometheus.NewDesc(
|
DpiStatsApp: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "dpistatsapp"),
|
prometheus.BuildFQName(ns, ns2, "DpiStatsApp"),
|
||||||
"Client DPI Stats App", labels, nil,
|
"Client DPI Stats App", labels, nil,
|
||||||
),
|
),
|
||||||
DpiStatsCat: prometheus.NewDesc(
|
DpiStatsCat: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "dpistatscat"),
|
prometheus.BuildFQName(ns, ns2, "DpiStatsCat"),
|
||||||
"Client DPI Stats Cat", labels, nil,
|
"Client DPI Stats Cat", labels, nil,
|
||||||
),
|
),
|
||||||
DpiStatsRxBytes: prometheus.NewDesc(
|
DpiStatsRxBytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "dpistatsrxbytes"),
|
prometheus.BuildFQName(ns, ns2, "DpiStatsRxBytes"),
|
||||||
"Client DPI Stats Receive Bytes", labels, nil,
|
"Client DPI Stats Receive Bytes", labels, nil,
|
||||||
),
|
),
|
||||||
DpiStatsRxPackets: prometheus.NewDesc(
|
DpiStatsRxPackets: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "dpistatsrxpackets"),
|
prometheus.BuildFQName(ns, ns2, "DpiStatsRxPackets"),
|
||||||
"Client DPI Stats Receive Packets", labels, nil,
|
"Client DPI Stats Receive Packets", labels, nil,
|
||||||
),
|
),
|
||||||
DpiStatsTxBytes: prometheus.NewDesc(
|
DpiStatsTxBytes: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "dpistatstxbytes"),
|
prometheus.BuildFQName(ns, ns2, "DpiStatsTxBytes"),
|
||||||
"Client DPI Stats Transmit Bytes", labels, nil,
|
"Client DPI Stats Transmit Bytes", labels, nil,
|
||||||
),
|
),
|
||||||
DpiStatsTxPackets: prometheus.NewDesc(
|
DpiStatsTxPackets: prometheus.NewDesc(
|
||||||
prometheus.BuildFQName(ns, ns2, "dpistatstxpackets"),
|
prometheus.BuildFQName(ns, ns2, "DpiStatsTxPackets"),
|
||||||
"Client DPI Stats Transmit Packets", labels, nil,
|
"Client DPI Stats Transmit Packets", labels, nil,
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,10 +131,15 @@ func (u *unifiCollector) export(ch chan<- prometheus.Metric, exports []*metricEx
|
||||||
for _, e := range exports {
|
for _, e := range exports {
|
||||||
v, ok := e.Value.(float64)
|
v, ok := e.Value.(float64)
|
||||||
if !ok {
|
if !ok {
|
||||||
|
j, ok := e.Value.(int64)
|
||||||
|
v = float64(j)
|
||||||
|
if !ok {
|
||||||
|
// log.Printf("not a number: %v %v", e.Value, e.Desc.String())
|
||||||
if u.Config.ReportErrors {
|
if u.Config.ReportErrors {
|
||||||
ch <- prometheus.NewInvalidMetric(e.Desc, fmt.Errorf("not a number"))
|
ch <- prometheus.NewInvalidMetric(e.Desc, fmt.Errorf("not a number: %v", e.Value))
|
||||||
|
}
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
}
|
||||||
ch <- prometheus.NewMetricWithTimestamp(ts, prometheus.MustNewConstMetric(e.Desc, e.ValueType, v, e.Labels...))
|
ch <- prometheus.NewMetricWithTimestamp(ts, prometheus.MustNewConstMetric(e.Desc, e.ValueType, v, e.Labels...))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,174 @@
|
||||||
package promunifi
|
package promunifi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
"golift.io/unifi"
|
"golift.io/unifi"
|
||||||
)
|
)
|
||||||
|
|
||||||
type site struct {
|
type site struct {
|
||||||
|
NumUser *prometheus.Desc
|
||||||
|
NumGuest *prometheus.Desc
|
||||||
|
NumIot *prometheus.Desc
|
||||||
|
TxBytesR *prometheus.Desc
|
||||||
|
RxBytesR *prometheus.Desc
|
||||||
|
NumAp *prometheus.Desc
|
||||||
|
NumAdopted *prometheus.Desc
|
||||||
|
NumDisabled *prometheus.Desc
|
||||||
|
NumDisconnected *prometheus.Desc
|
||||||
|
NumPending *prometheus.Desc
|
||||||
|
NumGw *prometheus.Desc
|
||||||
|
NumSw *prometheus.Desc
|
||||||
|
NumSta *prometheus.Desc
|
||||||
|
Latency *prometheus.Desc
|
||||||
|
Drops *prometheus.Desc
|
||||||
|
XputUp *prometheus.Desc
|
||||||
|
XputDown *prometheus.Desc
|
||||||
|
SpeedtestPing *prometheus.Desc
|
||||||
|
RemoteUserNumActive *prometheus.Desc
|
||||||
|
RemoteUserNumInactive *prometheus.Desc
|
||||||
|
RemoteUserRxBytes *prometheus.Desc
|
||||||
|
RemoteUserTxBytes *prometheus.Desc
|
||||||
|
RemoteUserRxPackets *prometheus.Desc
|
||||||
|
RemoteUserTxPackets *prometheus.Desc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// XXX: The help values can be more verbose.
|
||||||
func descSite(ns string) *site {
|
func descSite(ns string) *site {
|
||||||
return &site{}
|
labels := []string{"name", "desc", "site_name", "subsystem", "status", "gwversion"}
|
||||||
|
ns2 := "site"
|
||||||
|
|
||||||
|
return &site{
|
||||||
|
NumUser: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumUser"),
|
||||||
|
"NumUser", labels, nil,
|
||||||
|
),
|
||||||
|
NumGuest: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumGuest"),
|
||||||
|
"NumGuest", labels, nil,
|
||||||
|
),
|
||||||
|
NumIot: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumIot"),
|
||||||
|
"NumIot", labels, nil,
|
||||||
|
),
|
||||||
|
TxBytesR: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "TxBytesR"),
|
||||||
|
"TxBytesR", labels, nil,
|
||||||
|
),
|
||||||
|
RxBytesR: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RxBytesR"),
|
||||||
|
"RxBytesR", labels, nil,
|
||||||
|
),
|
||||||
|
NumAp: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumAp"),
|
||||||
|
"NumAp", labels, nil,
|
||||||
|
),
|
||||||
|
NumAdopted: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumAdopted"),
|
||||||
|
"NumAdopted", labels, nil,
|
||||||
|
),
|
||||||
|
NumDisabled: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumDisabled"),
|
||||||
|
"NumDisabled", labels, nil,
|
||||||
|
),
|
||||||
|
NumDisconnected: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumDisconnected"),
|
||||||
|
"NumDisconnected", labels, nil,
|
||||||
|
),
|
||||||
|
NumPending: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumPending"),
|
||||||
|
"NumPending", labels, nil,
|
||||||
|
),
|
||||||
|
NumGw: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumGw"),
|
||||||
|
"NumGw", labels, nil,
|
||||||
|
),
|
||||||
|
NumSw: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumSw"),
|
||||||
|
"NumSw", labels, nil,
|
||||||
|
),
|
||||||
|
NumSta: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "NumSta"),
|
||||||
|
"NumSta", labels, nil,
|
||||||
|
),
|
||||||
|
Latency: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "Latency"),
|
||||||
|
"Latency", labels, nil,
|
||||||
|
),
|
||||||
|
Drops: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "Drops"),
|
||||||
|
"Drops", labels, nil,
|
||||||
|
),
|
||||||
|
XputUp: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "XputUp"),
|
||||||
|
"XputUp", labels, nil,
|
||||||
|
),
|
||||||
|
XputDown: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "XputDown"),
|
||||||
|
"XputDown", labels, nil,
|
||||||
|
),
|
||||||
|
SpeedtestPing: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "SpeedtestPing"),
|
||||||
|
"SpeedtestPing", labels, nil,
|
||||||
|
),
|
||||||
|
RemoteUserNumActive: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RemoteUserNumActive"),
|
||||||
|
"RemoteUserNumActive", labels, nil,
|
||||||
|
),
|
||||||
|
RemoteUserNumInactive: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RemoteUserNumInactive"),
|
||||||
|
"RemoteUserNumInactive", labels, nil,
|
||||||
|
),
|
||||||
|
RemoteUserRxBytes: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RemoteUserRxBytes"),
|
||||||
|
"RemoteUserRxBytes", labels, nil,
|
||||||
|
),
|
||||||
|
RemoteUserTxBytes: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RemoteUserTxBytes"),
|
||||||
|
"RemoteUserTxBytes", labels, nil,
|
||||||
|
),
|
||||||
|
RemoteUserRxPackets: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RemoteUserRxPackets"),
|
||||||
|
"RemoteUserRxPackets", labels, nil,
|
||||||
|
),
|
||||||
|
RemoteUserTxPackets: prometheus.NewDesc(
|
||||||
|
prometheus.BuildFQName(ns, ns2, "RemoteUserTxPackets"),
|
||||||
|
"RemoteUserTxPackets", labels, nil,
|
||||||
|
),
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// exportSite exports Network Site Data
|
// exportSite exports Network Site Data
|
||||||
func (u *unifiCollector) exportSite(s *unifi.Site) []*metricExports {
|
func (u *unifiCollector) exportSite(s *unifi.Site) []*metricExports {
|
||||||
return nil
|
labels := []string{s.Name, s.Desc, s.SiteName}
|
||||||
|
var m []*metricExports
|
||||||
|
for _, h := range s.Health {
|
||||||
|
l := append(labels, h.Subsystem, h.Status, h.GwVersion)
|
||||||
|
m = append(m, &metricExports{u.Site.NumUser, prometheus.CounterValue, h.NumUser.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumGuest, prometheus.CounterValue, h.NumGuest.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumIot, prometheus.CounterValue, h.NumIot.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.TxBytesR, prometheus.GaugeValue, h.TxBytesR.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.RxBytesR, prometheus.GaugeValue, h.RxBytesR.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumAp, prometheus.CounterValue, h.NumAp.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumAdopted, prometheus.CounterValue, h.NumAdopted.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumDisabled, prometheus.CounterValue, h.NumDisabled.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumDisconnected, prometheus.CounterValue, h.NumDisconnected.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumPending, prometheus.CounterValue, h.NumPending.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumGw, prometheus.CounterValue, h.NumGw.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumSw, prometheus.CounterValue, h.NumSw.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.NumSta, prometheus.CounterValue, h.NumSta.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.Latency, prometheus.GaugeValue, h.Latency.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.Drops, prometheus.CounterValue, h.Drops.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.XputUp, prometheus.GaugeValue, h.XputUp.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.XputDown, prometheus.GaugeValue, h.XputDown.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.SpeedtestPing, prometheus.GaugeValue, h.SpeedtestPing.Val, l})
|
||||||
|
if h.Subsystem == "vpn" {
|
||||||
|
m = append(m, &metricExports{u.Site.RemoteUserNumActive, prometheus.CounterValue, h.RemoteUserNumActive.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.RemoteUserNumInactive, prometheus.CounterValue, h.RemoteUserNumInactive.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.RemoteUserRxBytes, prometheus.CounterValue, h.RemoteUserRxBytes.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.RemoteUserTxBytes, prometheus.CounterValue, h.RemoteUserTxBytes.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.RemoteUserRxPackets, prometheus.CounterValue, h.RemoteUserRxPackets.Val, l})
|
||||||
|
m = append(m, &metricExports{u.Site.RemoteUserTxPackets, prometheus.CounterValue, h.RemoteUserTxPackets.Val, l})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return m
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue