Jellyfin exporter for Prometheus
Go to file
Amazed 7d82945f61
All checks were successful
continuous-integration/drone/push Build is passing
Update src/jellyfin_exporter/collector.py
2023-10-22 16:01:22 +02:00
src/jellyfin_exporter Update src/jellyfin_exporter/collector.py 2023-10-22 16:01:22 +02:00
.drone.yml Init 2023-10-17 18:25:00 +02:00
.gitignore Init 2023-10-17 18:25:00 +02:00
docker-compose.yml Update docker-compose.yml 2023-10-22 14:51:03 +02:00
Dockerfile Init 2023-10-17 18:25:00 +02:00
jellyfin.yml Init 2023-10-17 18:25:00 +02:00
pylintrc Init 2023-10-17 18:25:00 +02:00
pyproject.toml Fix 2023-10-17 18:33:16 +02:00
README.md Update README.md 2023-10-22 14:54:23 +02:00
test-requirements.txt Init 2023-10-17 18:25:00 +02:00

Prometheus Jellyfin Exporter

This is an exporter that exposes information gathered from Jellyfin for use by the Prometheus monitoring system.

Installation

Requires Python 3.9 or better.

Using docker

docker pull git.hipstercat.fr/hipstercat/jellyfin-exporter:main

Example: Display usage message:

docker run -it --rm git.hipstercat.fr/hipstercat/jellyfin-exporter:main --help

Example: Run the image with a mounted configuration file and published port:

docker run --init --name prometheus-jellyfin-exporter -d -p 127.0.0.1:9222:9222 -v /path/to/pve.yml:/etc/pve.yml git.hipstercat.fr/hipstercat/jellyfin-exporter:main

Prometheus Jellyfin Exporter will now be reachable at http://localhost:9222/.

Usage

Visit http://localhost:9222/jellyfin?target=1.2.3.4 where 1.2.3.4 is the IP of the Jellyfin server to get metrics from. Specify the module request parameter, to choose which module to use from the config file.

The target request parameter defaults to localhost. Hence if jellyfin_exporter is deployed directly on the jellyfin host, target can be omitted.

Authentication

Using jellyfin.yml config file

Example jellyfin.yml for token authentication:

default:
  api_key: "your token"
  verify_ssl: true

Prometheus Configuration

The Jellyfin exporter can be deployed either directly on a Jellyfin server or onto a separate machine.

Example config for Jellyfin exporter running on Jellyfin server:

scrape_configs:
- job_name: 'jellyfin'
 static_configs:
   - targets:
     - 192.168.1.2:9222  # Jellyfin server with Jellyfin exporter.
 metrics_path: /jellyfin
 params:
   module: [default]

Example config for Jellyfin exporter running on Prometheus host:

scrape_configs:
  - job_name: 'jellyfin'
    static_configs:
      - targets:
        - 192.168.1.2  # Jellyfin server.
    metrics_path: /jellyfin
    params:
      module: [default]
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 127.0.0.1:9222  # Jellyfin exporter.