Sign inSign up

cplieger/plex-exporter

By cplieger

•Updated about 17 hours ago

Chart your Plex server's streams, transcodes, bandwidth and libraries in Grafana, with alerts

Image
Monitoring & observability
0

10K+

cplieger/plex-exporter repository overview

⁠plex-exporter

plex-exporter puts your Plex server's streams, transcodes, bandwidth and library sizes into Prometheus, so you can watch them in Grafana and get alerts. It only reads from Plex. Your own Prometheus and Grafana store and show the data.

The bundled Grafana dashboard showing server status, active streams and transcodes, library totals, a table of six active sessions and storage per library

⁠What it does

plex-exporter lets you follow your Plex server in Grafana and alerts you to problems.

  • Shows who watches what, on which device, and whether it plays directly or transcodes on your GPU or CPU.
  • Tracks each stream's bandwidth and bitrate, and whether the viewer is local or remote.
  • Counts each library's items, length and disk space, and lists its largest items with their last play.
  • Adds host CPU, memory and bandwidth with Plex Pass.
  • Comes with a Grafana dashboard and ten alert rules, one for a revoked token.

⁠Who it is for

plex-exporter is built for Plex server owners. It checks Plex for streams every 5 seconds, so a new stream appears within seconds.

You need a Plex Media Server and its admin token. plex-exporter's graphs and seven alerts come from your Prometheus, Grafana and Alertmanager, and three from Loki, which the monitoring guide⁠ sets up. Another Prometheus-compatible scraper, such as Grafana Alloy, works too. Run one container for each Plex server. Its metrics page has no login, so keep it on your own network.

Consider Tautulli⁠ if you want a web app made for Plex, with watch history, per-user statistics and notifications for streams and recently added media.

plex-exporter is free software under the GPL-3.0-or-later license.

⁠Pull

docker pull cplieger/plex-exporter:latest

Also published to ghcr.io/cplieger/plex-exporter with identical images and tags. Release versions are tagged vX.Y.Z alongside latest.

⁠Quick start

# Example compose for plex-exporter. See the README for all configuration options and hardening.
services:
  plex-exporter:
    image: ghcr.io/cplieger/plex-exporter:latest
    container_name: plex-exporter
    restart: unless-stopped

    # Set both values in a .env file next to this one before the first start.
    environment:
      - PLEX_URL  # the address you open Plex at from another device, such as http://192.0.2.10:32400
      - PLEX_TOKEN  # your Plex admin token, found with Plex's guide "Finding an authentication token"

    ports:
      - "9594:9594"

⁠Documentation

⁠License

GPL-3.0-or-later. See LICENSE⁠. The image carries the license text of every bundled component under /usr/share/licenses/.

Third-party attributions are in THIRD_PARTY_NOTICES.md⁠.

Tag summary

Content type

Image

Digest

sha256:87d45f38e…

Size

4.9 MB

Last updated

about 17 hours ago

docker pull cplieger/plex-exporter