mirror of
				https://github.com/KevinMidboe/mktxp-no-cli.git
				synced 2025-10-29 17:50:23 +00:00 
			
		
		
		
	feat: adds additional metrics for DHCP: last-seen, client-id, active-mac-address
This commit is contained in:
		| @@ -19,14 +19,14 @@ from mktxp.datasource.dhcp_ds import DHCPMetricsDataSource | ||||
|  | ||||
| class DHCPCollector(BaseCollector): | ||||
|     ''' DHCP Metrics collector | ||||
|     '''     | ||||
|     ''' | ||||
|     @staticmethod | ||||
|     def collect(router_entry): | ||||
|         if not router_entry.config_entry.dhcp: | ||||
|             return | ||||
|  | ||||
|         dhcp_lease_labels = ['active_address', 'address', 'mac_address', 'host_name', 'comment', 'server', 'expires_after'] | ||||
|         dhcp_lease_records = DHCPMetricsDataSource.metric_records(router_entry, metric_labels = dhcp_lease_labels)    | ||||
|         dhcp_lease_labels = ['active_address', 'address', 'mac_address', 'host_name', 'comment', 'server', 'expires_after', 'last_seen', 'client_id', 'active_mac_address'] | ||||
|         dhcp_lease_records = DHCPMetricsDataSource.metric_records(router_entry, metric_labels = dhcp_lease_labels) | ||||
|         if dhcp_lease_records: | ||||
|             # calculate number of leases per DHCP server | ||||
|             dhcp_lease_servers = {} | ||||
| @@ -38,17 +38,17 @@ class DHCPCollector(BaseCollector): | ||||
|             dhcp_lease_servers_records = [{ MKTXPConfigKeys.ROUTERBOARD_NAME: router_entry.router_id[MKTXPConfigKeys.ROUTERBOARD_NAME], | ||||
|                                             MKTXPConfigKeys.ROUTERBOARD_ADDRESS: router_entry.router_id[MKTXPConfigKeys.ROUTERBOARD_ADDRESS], | ||||
|                                             'server': key, 'count': value} for key, value in dhcp_lease_servers.items()] | ||||
|              | ||||
|  | ||||
|             # yield lease-per-server metrics | ||||
|             dhcp_lease_server_metrics = BaseCollector.gauge_collector('dhcp_lease_active_count',  | ||||
|                                                                         'Number of active leases per DHCP server',  | ||||
|             dhcp_lease_server_metrics = BaseCollector.gauge_collector('dhcp_lease_active_count', | ||||
|                                                                         'Number of active leases per DHCP server', | ||||
|                                                                         dhcp_lease_servers_records, 'count', ['server']) | ||||
|             yield dhcp_lease_server_metrics | ||||
|  | ||||
|             # active lease metrics | ||||
|             dhcp_lease_labels.remove('expires_after') | ||||
|             if router_entry.config_entry.dhcp_lease: | ||||
|                 dhcp_lease_metrics_gauge = BaseCollector.gauge_collector('dhcp_lease_info', 'DHCP Active Leases',  | ||||
|                 dhcp_lease_metrics_gauge = BaseCollector.gauge_collector('dhcp_lease_info', 'DHCP Active Leases', | ||||
|                                                                         dhcp_lease_records, 'expires_after', dhcp_lease_labels) | ||||
|                 yield dhcp_lease_metrics_gauge | ||||
|  | ||||
| @@ -56,4 +56,3 @@ class DHCPCollector(BaseCollector): | ||||
|             #if router_entry.config_entry.dhcp_lease: | ||||
|             #    dhcp_lease_metrics = BaseCollector.info_collector('dhcp_lease', 'DHCP Active Leases', dhcp_lease_records, dhcp_lease_labels) | ||||
|             #    yield dhcp_lease_metrics | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user