Build a Jellyfin Monitoring Dashboard with Grafana and Prometheus (2026)

Build a Jellyfin Monitoring Dashboard with Grafana and Prometheus (2026)

Build a Jellyfin Monitoring Dashboard with Grafana and Prometheus (2026)

JellyWatch gives you mobile monitoring. But if you want a wall-mounted dashboard with real-time graphs, historical trends, and alerting rules - Grafana and Prometheus are the answer.

This guide shows you how to build a complete Jellyfin monitoring stack.


The Monitoring Stack

Jellyfin → Jellyfin Exporter → Prometheus → Grafana
ComponentRole
JellyfinYour media server
Jellyfin ExporterScrapes Jellyfin API, exposes metrics
PrometheusStores time-series metrics
GrafanaVisualizes metrics as dashboards

Docker Compose: Full Stack

services:
  prometheus:
    image: prom/prometheus:latest
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    ports:
      - 9090:9090
    restart: unless-stopped

  grafana:
    image: grafana/grafana:latest
    volumes:
      - grafana_data:/var/lib/grafana
    ports:
      - 3000:3000
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=changeme
    restart: unless-stopped

  jellyfin-exporter:
    image: ghcr.io/quasar/jellyfin-exporter:latest
    environment:
      - JELLYFIN_URL=http://jellyfin:8096
      - JELLYFIN_API_KEY=your_api_key_here
    ports:
      - 9027:9027
    restart: unless-stopped

volumes:
  prometheus_data:
  grafana_data:

Prometheus configuration

# prometheus.yml
global:
  scrape_interval: 30s

scrape_configs:
  - job_name: jellyfin
    static_configs:
      - targets: ["jellyfin-exporter:9027"]

  - job_name: node
    static_configs:
      - targets: ["node-exporter:9100"]

Metrics Available

The Jellyfin exporter provides:

Server metrics

  • Active session count
  • Total users
  • Library item counts (movies, episodes, music)
  • Server version and uptime

Session metrics

  • Per-session playback state (playing, paused)
  • Transcode vs Direct Play ratio
  • Client type and device info
  • Bitrate and resolution per stream

System metrics (via Node Exporter)

  • CPU usage
  • RAM usage
  • Disk I/O and free space
  • Network throughput

Building the Grafana Dashboard

Panel 1: Active Sessions (Gauge)

jellyfin_active_sessions

A large gauge showing current stream count. Green (0-3), yellow (4-6), red (7+).

Panel 2: Transcode vs Direct Play (Pie Chart)

jellyfin_sessions_transcode_total
jellyfin_sessions_directplay_total

Shows the ratio of transcoded vs direct play sessions over time.

JellyWatchTry JellyWatch — Your Jellyfin companion, everywhere.

Panel 3: CPU Usage (Time Series)

100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Real-time CPU usage graph with threshold alerts.

Panel 4: Storage Free Space (Bar Gauge)

node_filesystem_avail_bytes{mountpoint="/media"}

Shows remaining storage on your media drive.

Panel 5: Library Growth (Stat)

jellyfin_library_movies_total
jellyfin_library_episodes_total

Total items in your library - track growth over time.


Alerting Rules

CPU above 90% for 5 minutes

groups:
  - name: jellyfin
    rules:
      - alert: HighCPU
        expr: (100 - avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: "Jellyfin server CPU above 90%"

Storage below 10%

      - alert: LowStorage
        expr: (node_filesystem_avail_bytes{mountpoint="/media"} / node_filesystem_size_bytes{mountpoint="/media"}) < 0.1
        for: 10m
        labels:
          severity: critical
        annotations:
          summary: "Media storage below 10%"

Route alerts to Ntfy, Discord, or Telegram via Grafana alerting or Alertmanager.


Pre-Built Dashboards

The Grafana community has pre-built Jellyfin dashboards:


Grafana + JellyWatch: Complementary Tools

FeatureGrafanaJellyWatch
Historical trendsExcellentBasic
Real-time sessionsGoodExcellent
Mobile accessWeb (responsive)Native Android app
Push notificationsVia alertingBuilt-in
Setup complexityMedium-HighInstall and connect

Use Grafana for deep analysis on a desktop. Use JellyWatch for instant mobile monitoring.


Deep analytics on desktop, instant monitoring on mobile. Download JellyWatch on Google Play - the perfect companion to your Grafana dashboard for on-the-go Jellyfin monitoring.

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment

Never displayed publicly.
0 / 2000 · Supports limited Markdown: **bold**, *italic*, `code`, [link](url), lists, > quote.