mirror of
https://github.com/NohamR/prometheus-qbittorrent-exporter.git
synced 2025-05-23 16:49: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