mirror of
				https://github.com/NohamR/prometheus-qbittorrent-exporter.git
				synced 2025-10-31 14:19:29 +00:00 
			
		
		
		
	new metrics
This commit is contained in:
		
							parent
							
								
									6b9c2e5a50
								
							
						
					
					
						commit
						ec6af68f46
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -136,3 +136,4 @@ config.env | ||||
| 
 | ||||
| # Ignore ruff files | ||||
| .ruff_cache | ||||
| .DS_Store | ||||
|  | ||||
							
								
								
									
										39
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,39 @@ | ||||
| name: prom-qb-alltime | ||||
| services: | ||||
|   esanchezm: | ||||
|     cpu_shares: 90 | ||||
|     command: [] | ||||
|     deploy: | ||||
|       resources: | ||||
|         limits: | ||||
|           memory: 7943M | ||||
|     environment: | ||||
|       - QBITTORRENT_HOST=192.168.1.58 | ||||
|       - QBITTORRENT_PASS=Cp3mMdP!# | ||||
|       - QBITTORRENT_PORT=8188 | ||||
|       - QBITTORRENT_USER=noham | ||||
|     image: prom-qb-alltime | ||||
|     labels: | ||||
|       icon: https://raw.githubusercontent.com/esanchezm/prometheus-qbittorrent-exporter/master/logo.png | ||||
|     ports: | ||||
|       - target: 8000 | ||||
|         published: "9101" | ||||
|         protocol: tcp | ||||
|     restart: unless-stopped | ||||
|     volumes: [] | ||||
|     devices: [] | ||||
|     cap_add: [] | ||||
|     network_mode: bridge | ||||
|     privileged: false | ||||
|     container_name: "" | ||||
| x-casaos: | ||||
|   author: self | ||||
|   category: self | ||||
|   hostname: "" | ||||
|   icon: https://raw.githubusercontent.com/esanchezm/prometheus-qbittorrent-exporter/master/logo.png | ||||
|   index: /metrics | ||||
|   port_map: "9101" | ||||
|   scheme: http | ||||
|   store_app_id: relaxed_albert | ||||
|   title: | ||||
|     custom: prom-qb-alltime | ||||
| @ -1,11 +1,13 @@ | ||||
| import faulthandler | ||||
| import logging | ||||
| import os | ||||
| from dotenv import load_dotenv | ||||
| load_dotenv() | ||||
| import signal | ||||
| import sys | ||||
| import time | ||||
| from dataclasses import dataclass, field | ||||
| from enum import StrEnum, auto | ||||
| from enum import Enum, auto | ||||
| from typing import Any, Iterable | ||||
| 
 | ||||
| from prometheus_client import start_http_server | ||||
| @ -17,8 +19,7 @@ from qbittorrentapi import Client, TorrentStates | ||||
| faulthandler.enable() | ||||
| logger = logging.getLogger() | ||||
| 
 | ||||
| 
 | ||||
| class MetricType(StrEnum): | ||||
| class MetricType(Enum): | ||||
|     """ | ||||
|     Represents possible metric types (used in this project). | ||||
|     """ | ||||
| @ -159,6 +160,59 @@ class QbittorrentMetricsCollector: | ||||
|                 help_text="Total data uploaded, in bytes.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_total_peer_connections", | ||||
|                 value=server_state.get("total_peer_connections", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="total_peer_connections.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
| 
 | ||||
| 
 | ||||
|             #### Disk metrics | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_write_cache_overload", | ||||
|                 value=server_state.get("write_cache_overload", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="write_cache_overload.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_read_cache_overload", | ||||
|                 value=server_state.get("read_cache_overload", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="read_cache_overload.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
| 
 | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_read_cache_hits", | ||||
|                 value=server_state.get("read_cache_hits", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="read_cache_hits.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_average_time_queue", | ||||
|                 value=server_state.get("average_time_queue", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="average_time_queue.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_free_space_on_disk", | ||||
|                 value=server_state.get("free_space_on_disk", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="free_space_on_disk.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
|             Metric( | ||||
|                 name=f"{self.config['metrics_prefix']}_queued_io_jobs", | ||||
|                 value=server_state.get("queued_io_jobs", 0), | ||||
|                 labels={},  # no labels in the example | ||||
|                 help_text="queued_io_jobs.", | ||||
|                 metric_type=MetricType.COUNTER, | ||||
|             ), | ||||
|         ] | ||||
| 
 | ||||
|     def _fetch_categories(self) -> dict: | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 √(noham)²
						√(noham)²