mirror of
				https://github.com/KevinMidboe/mktxp-no-cli.git
				synced 2025-10-29 17:50:23 +00:00 
			
		
		
		
	DS refactor, fixes/optimizations
This commit is contained in:
		
							
								
								
									
										55
									
								
								mktxp/collector/interface_collector.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								mktxp/collector/interface_collector.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| # coding=utf8 | ||||
| ## Copyright (c) 2020 Arseniy Kuznetsov | ||||
| ## | ||||
| ## This program is free software; you can redistribute it and/or | ||||
| ## modify it under the terms of the GNU General Public License | ||||
| ## as published by the Free Software Foundation; either version 2 | ||||
| ## of the License, or (at your option) any later version. | ||||
| ## | ||||
| ## This program is distributed in the hope that it will be useful, | ||||
| ## but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
| ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
| ## GNU General Public License for more details. | ||||
|  | ||||
|  | ||||
| from mktxp.collector.base_collector import BaseCollector | ||||
| from mktxp.datasource.interface_ds import InterfaceTrafficMetricsDataSource | ||||
|  | ||||
|  | ||||
| class InterfaceCollector(BaseCollector): | ||||
|     ''' Router Interface Metrics collector | ||||
|     '''         | ||||
|     @staticmethod | ||||
|     def collect(router_entry): | ||||
|         interface_traffic_labels = ['name', 'comment', 'rx_byte', 'tx_byte', 'rx_packet', 'tx_packet', 'rx_error', 'tx_error', 'rx_drop', 'tx_drop'] | ||||
|         interface_traffic_records = InterfaceTrafficMetricsDataSource.metric_records(router_entry, metric_labels = interface_traffic_labels)    | ||||
|  | ||||
|         if interface_traffic_records: | ||||
|             for interface_traffic_record in interface_traffic_records: | ||||
|                 if interface_traffic_record.get('comment'): | ||||
|                     interface_traffic_record['name'] = interface_traffic_record['comment'] if router_entry.config_entry.use_comments_over_names \ | ||||
|                                                                                 else f"{interface_traffic_record['name']} ({interface_traffic_record['comment']})" | ||||
|  | ||||
|             rx_byte_metric = BaseCollector.counter_collector('interface_rx_byte', 'Number of received bytes', interface_traffic_records, 'rx_byte', ['name']) | ||||
|             yield rx_byte_metric | ||||
|  | ||||
|             tx_byte_metric = BaseCollector.counter_collector('interface_tx_byte', 'Number of transmitted bytes', interface_traffic_records, 'tx_byte', ['name']) | ||||
|             yield tx_byte_metric | ||||
|  | ||||
|             rx_packet_metric = BaseCollector.counter_collector('interface_rx_packet', 'Number of packets received', interface_traffic_records, 'rx_packet', ['name']) | ||||
|             yield rx_packet_metric | ||||
|  | ||||
|             tx_packet_metric = BaseCollector.counter_collector('interface_tx_packet', 'Number of transmitted packets', interface_traffic_records, 'tx_packet', ['name']) | ||||
|             yield tx_packet_metric | ||||
|  | ||||
|             rx_error_metric = BaseCollector.counter_collector('interface_rx_error', 'Number of packets received with an error', interface_traffic_records, 'rx_error', ['name']) | ||||
|             yield rx_error_metric | ||||
|  | ||||
|             tx_error_metric = BaseCollector.counter_collector('interface_tx_error', 'Number of packets transmitted with an error', interface_traffic_records, 'tx_error', ['name']) | ||||
|             yield tx_error_metric | ||||
|  | ||||
|             rx_drop_metric = BaseCollector.counter_collector('interface_rx_drop', 'Number of received packets being dropped', interface_traffic_records, 'rx_drop', ['name']) | ||||
|             yield rx_drop_metric | ||||
|  | ||||
|             tx_drop_metric = BaseCollector.counter_collector('interface_tx_drop', 'Number of transmitted packets being dropped', interface_traffic_records, 'tx_drop', ['name']) | ||||
|             yield tx_drop_metric | ||||
		Reference in New Issue
	
	Block a user