mirror of
				https://github.com/bashclub/check-unifi-controller.git
				synced 2025-10-30 21:52:26 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			272 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			272 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python3
 | |
| # -*- encoding: utf-8; py-indent-offset: 4 -*-
 | |
| ##  MIT License
 | |
| ##  
 | |
| ##  Copyright (c) 2021 Bash Club
 | |
| ##  
 | |
| ##  Permission is hereby granted, free of charge, to any person obtaining a copy
 | |
| ##  of this software and associated documentation files (the "Software"), to deal
 | |
| ##  in the Software without restriction, including without limitation the rights
 | |
| ##  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | |
| ##  copies of the Software, and to permit persons to whom the Software is
 | |
| ##  furnished to do so, subject to the following conditions:
 | |
| ##  
 | |
| ##  The above copyright notice and this permission notice shall be included in all
 | |
| ##  copies or substantial portions of the Software.
 | |
| ##  
 | |
| ##  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | |
| ##  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | |
| ##  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | |
| ##  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | |
| ##  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | |
| ##  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | |
| ##  SOFTWARE.
 | |
| 
 | |
| from cmk.gui.i18n import _
 | |
| from cmk.gui.plugins.metrics import (
 | |
|     metric_info,
 | |
|     graph_info,
 | |
|     translation
 | |
| )
 | |
| 
 | |
| 
 | |
| # Colors:
 | |
| #
 | |
| #                   red
 | |
| #  magenta                       orange
 | |
| #            11 12 13 14 15 16
 | |
| #         46                   21
 | |
| #         45                   22
 | |
| #   blue  44                   23  yellow
 | |
| #         43                   24
 | |
| #         42                   25
 | |
| #         41                   26
 | |
| #            36 35 34 33 32 31
 | |
| #     cyan                       yellow-green
 | |
| #                  green
 | |
| #
 | |
| # Special colors:
 | |
| # 51  gray
 | |
| # 52  brown 1
 | |
| # 53  brown 2
 | |
| #
 | |
| # For a new metric_info you have to choose a color. No more hex-codes are needed!
 | |
| # Instead you can choose a number of the above color ring and a letter 'a' or 'b
 | |
| # where 'a' represents the basic color and 'b' is a nuance/shading of the basic color.
 | |
| # Both number and letter must be declared!
 | |
| #
 | |
| # Example:
 | |
| # "color" : "23/a" (basic color yellow)
 | |
| # "color" : "23/b" (nuance of color yellow)
 | |
| #
 | |
| 
 | |
| 
 | |
| metric_info["satisfaction"] = {
 | |
|     "title": _("Satisfaction"),
 | |
|     "unit": "%",
 | |
|     "color": "16/a",
 | |
| }
 | |
| 
 | |
| metric_info["poe_current"] = {
 | |
|     "title": _("PoE Current"),
 | |
|     "unit": "a",
 | |
|     "color": "16/a",
 | |
| }
 | |
| metric_info["poe_voltage"] = {
 | |
|     "title": _("PoE Voltage"),
 | |
|     "unit": "v",
 | |
|     "color": "12/a",
 | |
| }
 | |
| metric_info["poe_power"] = {
 | |
|     "title": _("PoE Power"),
 | |
|     "unit": "w",
 | |
|     "color": "16/a",
 | |
| }
 | |
| 
 | |
| metric_info["user_sta"] = {
 | |
|     "title": _("User"),
 | |
|     "unit": "",
 | |
|     "color": "13/b",
 | |
| }
 | |
| metric_info["guest_sta"] = {
 | |
|     "title": _("Guest"),
 | |
|     "unit": "",
 | |
|     "color": "13/a",
 | |
| }
 | |
| 
 | |
| graph_info["user_sta_combined"] = {
 | |
|     "title" : _("User"),
 | |
|     "metrics" : [
 | |
|         ("user_sta","area"),
 | |
|         ("guest_sta","stack"),
 | |
|     ],
 | |
| }
 | |
| 
 | |
| metric_info["lan_user_sta"] = {
 | |
|     "title": _("LAN User"),
 | |
|     "unit": "count",
 | |
|     "color": "13/b",
 | |
| }
 | |
| metric_info["lan_guest_sta"] = {
 | |
|     "title": _("LAN Guest"),
 | |
|     "unit": "count",
 | |
|     "color": "13/a",
 | |
| }
 | |
| 
 | |
| graph_info["lan_user_sta_combined"] = {
 | |
|     "title" : _("LAN-User"),
 | |
|     "metrics" : [
 | |
|         ("lan_user_sta","area"),
 | |
|         ("lan_guest_sta","stack"),
 | |
|     ],
 | |
| }
 | |
| 
 | |
| 
 | |
| metric_info["lan_active_sw"] = {
 | |
|     "title": _("Active Switches"),
 | |
|     "unit": "count",
 | |
|     "color": "13/b",
 | |
| }
 | |
| metric_info["lan_total_sw"] = {
 | |
|     "title": _("Total Switches"),
 | |
|     "unit": "count",
 | |
|     "color": "13/a",
 | |
| }
 | |
| 
 | |
| graph_info["lan_active_sw_combined"] = {
 | |
|     "title" : _("Active Switches"),
 | |
|     "metrics" : [
 | |
|         ("lan_active_sw","area"),
 | |
|         ("lan_total_sw","line"),
 | |
|     ],
 | |
| }
 | |
| metric_info["wlan_active_ap"] = {
 | |
|     "title": _("Active Accesspoints"),
 | |
|     "unit": "count",
 | |
|     "color": "13/b",
 | |
| }
 | |
| metric_info["wlan_total_ap"] = {
 | |
|     "title": _("Total Accesspoints"),
 | |
|     "unit": "count",
 | |
|     "color": "13/a",
 | |
| }
 | |
| 
 | |
| graph_info["wlan_active_ap_combined"] = {
 | |
|     "title" : _("Active Accesspoints"),
 | |
|     "metrics" : [
 | |
|         ("wlan_active_ap","area"),
 | |
|         ("wlan_total_ap","line"),
 | |
|     ],
 | |
| }
 | |
| 
 | |
| metric_info["wlan_user_sta"] = {
 | |
|     "title": _("WLAN User"),
 | |
|     "unit": "count",
 | |
|     "color": "13/b",
 | |
| }
 | |
| metric_info["wlan_guest_sta"] = {
 | |
|     "title": _("WLAN Guest"),
 | |
|     "unit": "count",
 | |
|     "color": "13/a",
 | |
| }
 | |
| metric_info["wlan_iot_sta"] = {
 | |
|     "title": _("WLAN IoT Devices"),
 | |
|     "unit": "count",
 | |
|     "color": "14/a",
 | |
| }
 | |
| 
 | |
| graph_info["wlan_user_sta_combined"] = {
 | |
|     "title" : _("WLAN-User"),
 | |
|     "metrics" : [
 | |
|         ("wlan_user_sta","area"),
 | |
|         ("wlan_guest_sta","stack"),
 | |
|         ("wlan_iot_sta","stack"),
 | |
|     ],
 | |
| }
 | |
| 
 | |
| metric_info["wlan_24Ghz_num_user"] = {
 | |
|     "title": _("User 2.4Ghz"),
 | |
|     "unit": "count",
 | |
|     "color": "13/b",
 | |
| }
 | |
| metric_info["wlan_5Ghz_num_user"] = {
 | |
|     "title": _("User 5Ghz"),
 | |
|     "unit": "count",
 | |
|     "color": "13/a",
 | |
| }
 | |
| 
 | |
| graph_info["wlan_user_band_combined"] = {
 | |
|     "title" : _("WLAN User"),
 | |
|     "metrics" : [
 | |
|         ("wlan_24Ghz_num_user","area"),
 | |
|         ("wlan_5Ghz_num_user","stack"),
 | |
|     ],
 | |
| }
 | |
| 
 | |
| #na_avg_client_signal
 | |
| #ng_avg_client_signal
 | |
| 
 | |
| 
 | |
| metric_info["wlan_if_in_octets"] = {
 | |
|     "title": _("Input Octets"),
 | |
|     "unit": "bytes/s",
 | |
|     "color": "#00e060",
 | |
| }
 | |
| metric_info["wlan_if_out_octets"] = {
 | |
|     "title": _("Output Octets"),
 | |
|     "unit": "bytes/s",
 | |
|     "color": "#00e060",
 | |
| }
 | |
| graph_info["wlan_bandwidth_translated"] = {
 | |
|     "title": _("Bandwidth WLAN"),
 | |
|     "metrics": [
 | |
|         ("wlan_if_in_octets,8,*@bits/s", "area", _("Input bandwidth")),
 | |
|         ("wlan_if_out_octets,8,*@bits/s", "-area", _("Output bandwidth")),
 | |
|     ],
 | |
|     "scalars": [
 | |
|         ("if_in_octets:warn", _("Warning (In)")),
 | |
|         ("if_in_octets:crit", _("Critical (In)")),
 | |
|         ("if_out_octets:warn,-1,*", _("Warning (Out)")),
 | |
|         ("if_out_octets:crit,-1,*", _("Critical (Out)")),
 | |
|     ],
 | |
| }
 | |
| 
 | |
| 
 | |
| metric_info["na_avg_client_signal"] = {
 | |
|     "title" :_("Average Signal 5Ghz"),
 | |
|     "unit"  : "db",
 | |
|     "color" : "14/a",
 | |
| }
 | |
| metric_info["ng_avg_client_signal"] = {
 | |
|     "title" :_("Average Signal 2.4Ghz"),
 | |
|     "unit"  : "db",
 | |
|     "color" : "#80f000",
 | |
| }
 | |
| graph_info["avg_client_signal_combined"] = {
 | |
|     "title" : _("Average Client Signal"),
 | |
|     "metrics" : [
 | |
|         ("na_avg_client_signal","line"),
 | |
|         ("ng_avg_client_signal","line"),
 | |
|     ],
 | |
|     "range" : (-100,0)
 | |
| }
 | |
| 
 | |
| 
 | |
| ## different unit ???
 | |
| #graph_info["poe_usage_combined"] = {
 | |
| #    "title" : _("PoE Usage"),
 | |
| #    "metrics" : [
 | |
| #        ("poe_power","area"),
 | |
| #        ("poe_voltage","line"),
 | |
| #    ],
 | |
| #}
 | |
| 
 | |
| ### fixme default uptime translation?
 | |
| metric_info["unifi_uptime"] = {
 | |
|     "title" :_("Uptime"),
 | |
|     "unit"  : "s",
 | |
|     "color" : "#80f000",
 | |
| }
 | |
| 
 | |
| check_metrics["check_mk-unifi_network_ports_if"] = translation.if_translation
 |