fix(promunifi): avoid descriptor collision on unpoller_device_uptime_seconds
descIntegrationDevice was registered with namespace prefix
"unpoller_device_", producing "unpoller_device_uptime_seconds" with
labels {device_id} and a different help string than the existing
descDevice() metric of the same FQDN (labels {type, site_name, name,
source, tag}, help "Device Uptime"). Prometheus MustRegister panics on
inconsistent descriptors for the same fully-qualified name, causing
v3.0.0 to crashloop on startup whenever the Prometheus output was
enabled.
Move the Integration/v1 device metrics under a dedicated
"integration_device_" name prefix, matching the convention used by the
other Integration/v1 collectors added in the same release (e.g.
wifi_broadcast_*, acl_rule_*, mclag_domain_*, pending_device_*), where
the bare namespace prefix is passed in and the type prefix is baked
into each metric name string.
Affected metric renames:
unpoller_device_uptime_seconds -> unpoller_integration_device_uptime_seconds
unpoller_device_cpu_utilization_pct -> unpoller_integration_device_cpu_utilization_pct
unpoller_device_memory_utilization_pct -> unpoller_integration_device_memory_utilization_pct
unpoller_device_load_average_{1,5,15}min -> unpoller_integration_device_load_average_{1,5,15}min
unpoller_device_radio_tx_retries_pct -> unpoller_integration_device_radio_tx_retries_pct
unpoller_device_uplink_{rx,tx}_rate_bps -> unpoller_integration_device_uplink_{rx,tx}_rate_bps
Fixes #1002
Fixes #1004
This commit is contained in:
parent
728869741a
commit
c48b9917b0
|
|
@ -244,7 +244,7 @@ func (u *promUnifi) Run(c poller.Collect) error {
|
|||
u.Topology = descTopology(u.Namespace + "_")
|
||||
u.PortAnomaly = descPortAnomaly(u.Namespace + "_")
|
||||
u.VPNMesh = descVPNMesh(u.Namespace + "_")
|
||||
u.IntegrationDevice = descIntegrationDevice(u.Namespace + "_device_")
|
||||
u.IntegrationDevice = descIntegrationDevice(u.Namespace + "_")
|
||||
u.WANStatus = descWANStatus(u.Namespace + "_")
|
||||
u.PortForward = descPortForward(u.Namespace + "_")
|
||||
u.SSLCertificate = descSSLCertificate(u.Namespace + "_")
|
||||
|
|
|
|||
|
|
@ -25,15 +25,15 @@ func descIntegrationDevice(ns string) *integrationDevice {
|
|||
uplinkLabels := []string{"device_id", "uplink_index"}
|
||||
|
||||
return &integrationDevice{
|
||||
CPUUtilizationPct: prometheus.NewDesc(ns+"cpu_utilization_pct", "Device CPU utilization percentage (Integration/v1)", labels, nil),
|
||||
MemoryUtilizationPct: prometheus.NewDesc(ns+"memory_utilization_pct", "Device memory utilization percentage (Integration/v1)", labels, nil),
|
||||
LoadAverage1Min: prometheus.NewDesc(ns+"load_average_1min", "Device 1-minute load average (Integration/v1)", labels, nil),
|
||||
LoadAverage5Min: prometheus.NewDesc(ns+"load_average_5min", "Device 5-minute load average (Integration/v1)", labels, nil),
|
||||
LoadAverage15Min: prometheus.NewDesc(ns+"load_average_15min", "Device 15-minute load average (Integration/v1)", labels, nil),
|
||||
UptimeSec: prometheus.NewDesc(ns+"uptime_seconds", "Device uptime in seconds (Integration/v1)", labels, nil),
|
||||
RadioTxRetriesPct: prometheus.NewDesc(ns+"radio_tx_retries_pct", "Per-radio TX retry percentage (Integration/v1)", radioLabels, nil),
|
||||
UplinkRxRateBps: prometheus.NewDesc(ns+"uplink_rx_rate_bps", "Per-uplink receive rate in bps (Integration/v1)", uplinkLabels, nil),
|
||||
UplinkTxRateBps: prometheus.NewDesc(ns+"uplink_tx_rate_bps", "Per-uplink transmit rate in bps (Integration/v1)", uplinkLabels, nil),
|
||||
CPUUtilizationPct: prometheus.NewDesc(ns+"integration_device_cpu_utilization_pct", "Device CPU utilization percentage (Integration/v1)", labels, nil),
|
||||
MemoryUtilizationPct: prometheus.NewDesc(ns+"integration_device_memory_utilization_pct", "Device memory utilization percentage (Integration/v1)", labels, nil),
|
||||
LoadAverage1Min: prometheus.NewDesc(ns+"integration_device_load_average_1min", "Device 1-minute load average (Integration/v1)", labels, nil),
|
||||
LoadAverage5Min: prometheus.NewDesc(ns+"integration_device_load_average_5min", "Device 5-minute load average (Integration/v1)", labels, nil),
|
||||
LoadAverage15Min: prometheus.NewDesc(ns+"integration_device_load_average_15min", "Device 15-minute load average (Integration/v1)", labels, nil),
|
||||
UptimeSec: prometheus.NewDesc(ns+"integration_device_uptime_seconds", "Device uptime in seconds (Integration/v1)", labels, nil),
|
||||
RadioTxRetriesPct: prometheus.NewDesc(ns+"integration_device_radio_tx_retries_pct", "Per-radio TX retry percentage (Integration/v1)", radioLabels, nil),
|
||||
UplinkRxRateBps: prometheus.NewDesc(ns+"integration_device_uplink_rx_rate_bps", "Per-uplink receive rate in bps (Integration/v1)", uplinkLabels, nil),
|
||||
UplinkTxRateBps: prometheus.NewDesc(ns+"integration_device_uplink_tx_rate_bps", "Per-uplink transmit rate in bps (Integration/v1)", uplinkLabels, nil),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue