Skip to content

A prometheus exporter for qBittorrent built on top of Quarkus

Notifications You must be signed in to change notification settings

vincejv/qbittorrent-exporter

 
 

Repository files navigation

qbittorrent-exporter

Quarkus fork - Lower ram usage (20-50mb idle) and faster startup!

Quick comparison between GraalVM Native and JVM In red square - JVM, blue - GraalVM using Quarkus Framework I was also able to further lower memory usage, as per advice from Quarkus Team and GraalVM compiler, by setting an Xmx value, I set it to 50mb by default

Docker Native Image: RSS: 15-32mb RAM Usage: 20-76mb

JVM RSS: 110-420mb RAM Usage: 120-480mb

Let me know your thoughts!

image

Draft PR: caseyscarborough#20


Gradle Build Release

This app is a Prometheus exporter for the qBittorrent application. You must have version 4.1.0 of qBittorrent or higher for this plugin to work.

This is especially useful when integrated with the qbittorrent-grafana-dashboard.

See it on DockerHub.

Usage

docker

docker run \
    --name=qbittorrent-exporter \
    -e QBITTORRENT_USERNAME=username \
    -e QBITTORRENT_PASSWORD=password \
    -e QBITTORRENT_BASE_URL=http://localhost:8080 \
    -p 17871:17871 \
    vincejv/qbittorrent-exporter:latest

docker-compose.yaml

version: "3"
services:
 qbt-exporter:
    image: vincejv/qbittorrent-exporter:latest
    container_name: qbt-exporter
    networks:
      int-static-br:
        ipv4_address: 172.18.0.34
    environment:
      - QBITTORRENT_USERNAME=none
      - QBITTORRENT_PASSWORD=none
      - QBITTORRENT_BASE_URL=http://qbt.docker.internal:9089
      - QBITTORRENT_LOCALE=en-US
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped
    depends_on:
      - qbittorrent
    logging:
      options:
        max-size: "20m"
        max-file: "5"
        compress: "true"

Parameters

Parameter Function Default Value
-p 17871 The webservice port. N/A
-e QBITTORRENT_USERNAME The qBittorrent username. admin
-e QBITTORRENT_PASSWORD The qBittorrent password. adminadmin
-e QBITTORRENT_BASE_URL The qBittorrent base URL. http://localhost:8080
-e QBITTORRENT_HOST The qBittorrent host. Ignored when using QBITTORRENT_BASE_URL. localhost
-e QBITTORRENT_PORT The qBittorrent port. Ignored when using QBITTORRENT_BASE_URL. 8080
-e QBITTORRENT_PROTOCOL The qBittorrent protocol. Ignored when using QBITTORRENT_BASE_URL. http

Setup

Add the target to your scrape_configs in your prometheus.yml configuration file of your Prometheus server.

scrape_configs:

  - job_name: 'qbittorrent'
    static_configs:

      # Update your IP address and port here
      - targets: [ '192.168.1.100:17871' ]

Building Locally

Build the app and the docker container using the following commands:

./gradlew build
docker build .

About

A prometheus exporter for qBittorrent built on top of Quarkus

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.3%
  • Dockerfile 0.7%