Sign inSign up

mm404/tautulli-exporter

By mm404

Updated 18 days ago

Tautulli Exporter for Prometheus

Image
Monitoring & observability
0

10K+

mm404/tautulli-exporter repository overview

Tautulli Exporter

A Prometheus exporter for Plex Media Server metrics via Tautulli API. Designed for Kubernetes deployment with proper health checks, structured logging, and graceful error handling.

Project repo: github.com/mm503/tautulli-exporter

Quick Start

docker run -d \
  -e TAUTULLI_URL=http://your-tautulli:8181 \
  -e TAUTULLI_API_KEY=your-api-key \
  -p 8000:8000 \
  mm404/tautulli-exporter

Or on Kubernetes via Helm:

helm repo add tautulli-exporter https://mm503.github.io/tautulli-exporter
helm repo update
helm install tautulli-exporter tautulli-exporter/tautulli-exporter \
  --set config.tautulliUrl=http://your-tautulli:8181 \
  --set config.apiKey=your-api-key \
  --set image.repository=mm404/tautulli-exporter

The chart defaults to the GHCR copy of this image; the image.repository override above pulls it from Docker Hub instead. Chart repository details: mm503.github.io/tautulli-exporter.

Endpoints

  • /metrics - Prometheus metrics
  • /healthz - Liveness probe (always 200 if running)
  • /ready - Readiness probe (200 whenever the process can serve /metrics)

/ready does not fail when Tautulli is unreachable -- that would stop Prometheus scraping during an outage. Alert on plex_up == 0 instead.

Metrics

MetricTypeDescription
plex_active_streams_totalGaugeTotal number of active Plex streams
plex_active_streams_directGaugeNumber of non-transcoding streams (direct play + direct stream)
plex_active_streams_direct_playGaugeNumber of direct play sessions
plex_active_streams_direct_streamGaugeNumber of direct stream sessions
plex_active_streams_transcodeGaugeNumber of transcoding streams
plex_transcode_video_sessionsGaugeVideo transcoding sessions
plex_transcode_audio_sessionsGaugeAudio transcoding sessions
plex_transcode_container_sessionsGaugeContainer transcoding sessions
plex_bandwidth_total_kbpsGaugeTotal Plex streaming bandwidth (kbps)
plex_bandwidth_lan_kbpsGaugeLAN streaming bandwidth (kbps)
plex_bandwidth_wan_kbpsGaugeWAN streaming bandwidth (kbps)
plex_upGauge1 if the last Tautulli scrape succeeded, 0 otherwise
plex_last_successful_scrape_timestamp_secondsGaugeUnix timestamp of the last successful Tautulli scrape
plex_scrape_failures_totalCounterTotal number of failed Tautulli scrapes

Configuration

VariableRequiredDefaultDescription
TAUTULLI_URLYes-Tautulli server URL (e.g., http://192.168.1.100:8181)
TAUTULLI_API_KEYYes-Tautulli API key from Settings → Web Interface
METRICS_PORTNo8000Port for metrics/health endpoints
SCRAPE_INTERVALNo30Seconds between Tautulli API calls
REQUEST_TIMEOUTNo10HTTP request timeout in seconds
LOG_LEVELNoINFOLogging level (DEBUG, INFO, WARNING, ERROR)

Prometheus configuration

scrape_configs:
  - job_name: 'tautulli'
    static_configs:
      - targets: ['_IP_OF_YOUR_EXPORTER_:8000']
    metrics_path: '/metrics'
    scrape_interval: 30s

See README.md for more details.

Tag summary

Content type

Image

Digest

sha256:bbecece68

Size

4.5 MB

Last updated

18 days ago

docker pull mm404/tautulli-exporter