3
3
#
4
4
## MIT License
5
5
##
6
- ## Copyright (c) 2021 Bash Club
6
+ ## Copyright (c) 2024 Bash Club
7
7
##
8
8
## Permission is hereby granted, free of charge, to any person obtaining a copy
9
9
## of this software and associated documentation files (the "Software"), to deal
@@ -120,7 +120,7 @@ def check_unifi_controller(item,section):
120
120
state = State .OK ,
121
121
summary = f"Version: { section .cloudkey_version } "
122
122
)
123
- if int (section .cloudkey_update_available ) > 0 :
123
+ if _safe_int (section .cloudkey_update_available ) > 0 :
124
124
yield Result (
125
125
state = State .WARN ,
126
126
notice = _ ("Update available" )
@@ -270,7 +270,6 @@ def inventory_unifi_device_shortlist(section):
270
270
def discovery_unifi_device (section ):
271
271
yield Service (item = "Device Status" )
272
272
yield Service (item = "Unifi Device" )
273
- yield Service (item = "Unifi Device Uptime" )
274
273
yield Service (item = "Active-User" )
275
274
if section .type != "uap" : # kein satisfaction bei ap .. radio/ssid haben schon
276
275
yield Service (item = "Satisfaction" )
@@ -316,14 +315,6 @@ def check_unifi_device(item,section):
316
315
)
317
316
yield Metric ("user_sta" ,_active_user )
318
317
yield Metric ("guest_sta" ,_safe_int (section .guest_num_sta ))
319
- if item == "Unifi Device Uptime" :
320
- _uptime = int (section .uptime ) if section .uptime else - 1
321
- if _uptime > 0 :
322
- yield Result (
323
- state = State .OK ,
324
- summary = render .timespan (_uptime )
325
- )
326
- yield Metric ("unifi_uptime" ,_uptime )
327
318
if item == "Satisfaction" :
328
319
yield Result (
329
320
state = State .OK ,
@@ -415,7 +406,7 @@ def inventory_unifi_device(section):
415
406
416
407
############ DEVICEPORT ###########
417
408
@dataclass
418
- class unifi_interface (interfaces .Interface ):
409
+ class unifi_interface (interfaces .InterfaceWithCounters ):
419
410
jumbo : bool = False
420
411
satisfaction : int = 0
421
412
poe_enable : bool = False
@@ -430,8 +421,6 @@ class unifi_interface(interfaces.Interface):
430
421
ip_address : Optional [str ] = None
431
422
portconf : Optional [str ] = None
432
423
433
- def __post_init__ (self ) -> None :
434
- self .finalize ()
435
424
436
425
def _convert_unifi_counters_if (section : Section ) -> interfaces .Section :
437
426
## 10|port_idx|10
@@ -488,25 +477,29 @@ def _convert_unifi_counters_if(section: Section) -> interfaces.Section:
488
477
489
478
return [
490
479
unifi_interface (
491
- index = str (netif .port_idx ),
492
- descr = netif .name ,
493
- alias = netif .name ,
494
- type = '6' ,
495
- speed = _safe_int (netif .speed )* 1000000 ,
496
- oper_status = netif .oper_status ,
497
- admin_status = netif .admin_status ,
498
- in_octets = _safe_int (netif .rx_bytes ),
499
- in_ucast = _safe_int (netif .rx_packets ),
500
- in_mcast = _safe_int (netif .rx_multicast ),
501
- in_bcast = _safe_int (netif .rx_broadcast ),
502
- in_discards = _safe_int (netif .rx_dropped ),
503
- in_errors = _safe_int (netif .rx_errors ),
504
- out_octets = _safe_int (netif .tx_bytes ),
505
- out_ucast = _safe_int (netif .tx_packets ),
506
- out_mcast = _safe_int (netif .tx_multicast ),
507
- out_bcast = _safe_int (netif .tx_broadcast ),
508
- out_discards = _safe_int (netif .tx_dropped ),
509
- out_errors = _safe_int (netif .tx_errors ),
480
+ attributes = interfaces .Attributes (
481
+ index = str (netif .port_idx ),
482
+ descr = netif .name ,
483
+ alias = netif .name ,
484
+ type = '6' ,
485
+ speed = _safe_int (netif .speed )* 1000000 ,
486
+ oper_status = netif .oper_status ,
487
+ admin_status = netif .admin_status ,
488
+ ),
489
+ counters = interfaces .Counters (
490
+ in_octets = _safe_int (netif .rx_bytes ),
491
+ in_ucast = _safe_int (netif .rx_packets ),
492
+ in_mcast = _safe_int (netif .rx_multicast ),
493
+ in_bcast = _safe_int (netif .rx_broadcast ),
494
+ in_disc = _safe_int (netif .rx_dropped ),
495
+ in_err = _safe_int (netif .rx_errors ),
496
+ out_octets = _safe_int (netif .tx_bytes ),
497
+ out_ucast = _safe_int (netif .tx_packets ),
498
+ out_mcast = _safe_int (netif .tx_multicast ),
499
+ out_bcast = _safe_int (netif .tx_broadcast ),
500
+ out_disc = _safe_int (netif .tx_dropped ),
501
+ out_err = _safe_int (netif .tx_errors ),
502
+ ),
510
503
jumbo = True if netif .jumbo == "1" else False ,
511
504
satisfaction = _safe_int (netif .satisfaction ) if netif .satisfaction and netif .oper_status == "1" else 0 ,
512
505
poe_enable = True if netif .poe_enable == "1" else False ,
@@ -540,7 +533,7 @@ def check_unifi_network_port_if( ##fixme parsed_section_name
540
533
section : Section ,
541
534
) -> CheckResult :
542
535
_converted_ifs = _convert_unifi_counters_if (section )
543
- iface = next (filter (lambda x : _safe_int (item ,- 1 ) == _safe_int (x .index ) or item == x .alias ,_converted_ifs ),None ) ## fix Service Discovery appearance alias/descr
536
+ iface = next (filter (lambda x : _safe_int (item ,- 1 ) == _safe_int (x .attributes . index ) or item == x . attributes .alias ,_converted_ifs ),None ) ## fix Service Discovery appearance alias/descr
544
537
yield from interfaces .check_multiple_interfaces (
545
538
item ,
546
539
params ,
@@ -673,41 +666,42 @@ def discovery_unifi_ssids(section):
673
666
674
667
def check_unifi_ssids (item ,section ):
675
668
ssid = section .get (item )
676
- _channels = "," .join (list (filter (lambda x : _safe_int (x ) > 0 ,[ssid .ng_channel ,ssid .na_channel ])))
677
- yield Result (
678
- state = State .OK ,
679
- summary = f"Channels: { _channels } "
680
- )
681
- if (_safe_int (ssid .ng_is_guest ) + _safe_int (ssid .na_is_guest )) > 0 :
669
+ if ssid :
670
+ _channels = "," .join (list (filter (lambda x : _safe_int (x ) > 0 ,[ssid .ng_channel ,ssid .na_channel ])))
682
671
yield Result (
683
672
state = State .OK ,
684
- summary = "Guest "
673
+ summary = f"Channels: { _channels } "
685
674
)
686
- _satisfaction = max (0 ,min (_safe_int (ssid .ng_satisfaction ),_safe_int (ssid .na_satisfaction )))
687
- yield Result (
688
- state = State .OK ,
689
- summary = f"Satisfaction: { _satisfaction } "
690
- )
691
- _num_sta = _safe_int (ssid .na_num_sta ) + _safe_int (ssid .ng_num_sta )
692
- if _num_sta > 0 :
675
+ if (_safe_int (ssid .ng_is_guest ) + _safe_int (ssid .na_is_guest )) > 0 :
676
+ yield Result (
677
+ state = State .OK ,
678
+ summary = "Guest"
679
+ )
680
+ _satisfaction = max (0 ,min (_safe_int (ssid .ng_satisfaction ),_safe_int (ssid .na_satisfaction )))
693
681
yield Result (
694
682
state = State .OK ,
695
- summary = f"User : { _num_sta } "
683
+ summary = f"Satisfaction : { _satisfaction } "
696
684
)
697
- yield Metric ("satisfaction" ,max (0 ,_satisfaction ))
698
- yield Metric ("wlan_24Ghz_num_user" ,_safe_int (ssid .ng_num_sta ) )
699
- yield Metric ("wlan_5Ghz_num_user" ,_safe_int (ssid .na_num_sta ) )
700
-
701
- yield Metric ("na_avg_client_signal" ,_safe_int (ssid .na_avg_client_signal ))
702
- yield Metric ("ng_avg_client_signal" ,_safe_int (ssid .ng_avg_client_signal ))
685
+ _num_sta = _safe_int (ssid .na_num_sta ) + _safe_int (ssid .ng_num_sta )
686
+ if _num_sta > 0 :
687
+ yield Result (
688
+ state = State .OK ,
689
+ summary = f"User: { _num_sta } "
690
+ )
691
+ yield Metric ("satisfaction" ,max (0 ,_satisfaction ))
692
+ yield Metric ("wlan_24Ghz_num_user" ,_safe_int (ssid .ng_num_sta ) )
693
+ yield Metric ("wlan_5Ghz_num_user" ,_safe_int (ssid .na_num_sta ) )
703
694
704
- yield Metric ("na_tcp_packet_loss" ,_safe_int (ssid .na_tcp_packet_loss ))
705
- yield Metric ("ng_tcp_packet_loss" ,_safe_int (ssid .ng_tcp_packet_loss ))
706
-
707
- yield Metric ("na_wifi_retries" ,_safe_int (ssid .na_wifi_retries ))
708
- yield Metric ("ng_wifi_retries" ,_safe_int (ssid .ng_wifi_retries ))
709
- yield Metric ("na_wifi_latency" ,_safe_int (ssid .na_wifi_latency ))
710
- yield Metric ("ng_wifi_latency" ,_safe_int (ssid .ng_wifi_latency ))
695
+ yield Metric ("na_avg_client_signal" ,_safe_int (ssid .na_avg_client_signal ))
696
+ yield Metric ("ng_avg_client_signal" ,_safe_int (ssid .ng_avg_client_signal ))
697
+
698
+ yield Metric ("na_tcp_packet_loss" ,_safe_int (ssid .na_tcp_packet_loss ))
699
+ yield Metric ("ng_tcp_packet_loss" ,_safe_int (ssid .ng_tcp_packet_loss ))
700
+
701
+ yield Metric ("na_wifi_retries" ,_safe_int (ssid .na_wifi_retries ))
702
+ yield Metric ("ng_wifi_retries" ,_safe_int (ssid .ng_wifi_retries ))
703
+ yield Metric ("na_wifi_latency" ,_safe_int (ssid .na_wifi_latency ))
704
+ yield Metric ("ng_wifi_latency" ,_safe_int (ssid .ng_wifi_latency ))
711
705
712
706
713
707
@@ -732,26 +726,27 @@ def discovery_unifi_ssidlist(section):
732
726
733
727
def check_unifi_ssidlist (item ,section ):
734
728
ssid = section .get (item )
735
- yield Result (
736
- state = State .OK ,
737
- summary = f"Channels: { ssid .channels } "
738
- )
739
- yield Result (
740
- state = State .OK ,
741
- summary = f"User: { ssid .num_sta } "
742
- )
743
- yield Metric ("wlan_24Ghz_num_user" ,_safe_int (ssid .ng_num_sta ) )
744
- yield Metric ("wlan_5Ghz_num_user" ,_safe_int (ssid .na_num_sta ) )
745
- yield Metric ("na_avg_client_signal" ,_safe_int (ssid .na_avg_client_signal ))
746
- yield Metric ("ng_avg_client_signal" ,_safe_int (ssid .ng_avg_client_signal ))
729
+ if ssid :
730
+ yield Result (
731
+ state = State .OK ,
732
+ summary = f"Channels: { ssid .channels } "
733
+ )
734
+ yield Result (
735
+ state = State .OK ,
736
+ summary = f"User: { ssid .num_sta } "
737
+ )
738
+ yield Metric ("wlan_24Ghz_num_user" ,_safe_int (ssid .ng_num_sta ) )
739
+ yield Metric ("wlan_5Ghz_num_user" ,_safe_int (ssid .na_num_sta ) )
740
+ yield Metric ("na_avg_client_signal" ,_safe_int (ssid .na_avg_client_signal ))
741
+ yield Metric ("ng_avg_client_signal" ,_safe_int (ssid .ng_avg_client_signal ))
742
+
743
+ yield Metric ("na_tcp_packet_loss" ,_safe_int (ssid .na_tcp_packet_loss ))
744
+ yield Metric ("ng_tcp_packet_loss" ,_safe_int (ssid .ng_tcp_packet_loss ))
747
745
748
- yield Metric ("na_tcp_packet_loss" ,_safe_int (ssid .na_tcp_packet_loss ))
749
- yield Metric ("ng_tcp_packet_loss" ,_safe_int (ssid .ng_tcp_packet_loss ))
750
-
751
- yield Metric ("na_wifi_retries" ,_safe_int (ssid .na_wifi_retries ))
752
- yield Metric ("ng_wifi_retries" ,_safe_int (ssid .ng_wifi_retries ))
753
- yield Metric ("na_wifi_latency" ,_safe_int (ssid .na_wifi_latency ))
754
- yield Metric ("ng_wifi_latency" ,_safe_int (ssid .ng_wifi_latency ))
746
+ yield Metric ("na_wifi_retries" ,_safe_int (ssid .na_wifi_retries ))
747
+ yield Metric ("ng_wifi_retries" ,_safe_int (ssid .ng_wifi_retries ))
748
+ yield Metric ("na_wifi_latency" ,_safe_int (ssid .na_wifi_latency ))
749
+ yield Metric ("ng_wifi_latency" ,_safe_int (ssid .ng_wifi_latency ))
755
750
756
751
register .agent_section (
757
752
name = 'unifi_ssid_list' ,
@@ -766,5 +761,3 @@ def check_unifi_ssidlist(item,section):
766
761
)
767
762
768
763
769
-
770
-
0 commit comments