Skip to content

v2.1.1

Choose a tag to compare

@sethwv sethwv released this 31 Dec 22:33
180fc7d

NOTICE

Important: If you are running Dispatcharr in Docker, add PYTHONDONTWRITEBYTECODE=1 to your container's environment variables to prevent root-owned cache files from blocking plugin updates. This is a workaround for a Dispatcharr startup behavior that runs migrations as root.

Added

  • (v2.1.1 HOTFIX) New stream metric:
    • dispatcharr_stream_current_bitrate_bps — Current bitrate in bits per second (sum of all connected client transfer rates). Matches the "current bitrate" shown in Dispatcharr UI.
  • Minimum Dispatcharr version check:
    • Plugin now verifies that Dispatcharr meets the minimum required version (v0.14.0) at startup.
    • Skips version check for dev builds (with timestamp suffix).
    • Logs warning if version cannot be determined and proceeds anyway.
  • Profile expiry metric:
    • New dispatcharr_profile_days_to_expiry gauge showing days remaining until XC profile expiry.
    • Value is 0 if expired, -1 if no expiry is set.
    • Calculated from custom_properties['user_info']['exp_date'] Unix timestamp.
  • Root-owned __pycache__ detection:
    • Plugin detects root-owned __pycache__ directories at startup (caused by Dispatcharr running migrations as root).
    • Logs a warning with remediation instructions (add PYTHONDONTWRITEBYTECODE=1 or manually delete).

Changed

  • (v2.1.1 HOTFIX) Client transfer rate unit auto-detection:
    • Client metrics now auto-detect whether Redis fields contain bytes/s or KB/s (field names suggest KB/s but currently contain bytes/s in some Dispatcharr versions).
    • Auto-detection logic: if value > 50000, assume bytes/s; otherwise assume KB/s.
    • Applied to both avg_rate_KBps and current_rate_KBps fields.
  • Bitrate metrics now use bits per second (bps) instead of kilobits per second (kbps):
    • Stream metrics: dispatcharr_stream_video_bitrate_bps, dispatcharr_stream_transcode_bitrate_bps, dispatcharr_stream_avg_bitrate_bps (previously *_kbps).
    • Client metrics: dispatcharr_client_avg_transfer_rate_bps, dispatcharr_client_current_transfer_rate_bps (previously *_kbps).
    • All bitrate values are now in bits per second for consistency with Prometheus/Grafana best practices.
    • Use Grafana's "bits/sec" unit for automatic formatting (auto-converts to Kbps, Mbps, Gbps).
    • Legacy metrics also updated to use *_bps naming and values.
  • Profile connection counting improved:
    • Profile connection metrics now calculate actual active connections by scanning active streams.
    • More accurate than Redis counters which don't update during stream fallback/failover.
  • METRICS.md documentation updated:
    • All bitrate metric names and examples updated to reflect bps units.
    • Added PromQL examples for converting bps to Mbps for display.

Fixed

  • (v2.1.1 HOTFIX) Client transfer rates now correctly handle Dispatcharr versions that store bytes/s instead of KB/s in Redis fields (previously multiplied by 8000 unconditionally, causing 1000x inflation).
  • Profile connection metrics now reflect reality during stream fallback (previously used stale Redis counters).

Installing: https://github.com/sethwv/dispatcharr-exporter?tab=readme-ov-file#installation
Upgrading: https://github.com/sethwv/dispatcharr-exporter?tab=readme-ov-file#updating-the-plugin
Hotfix Changelog: v2.1.0...v2.1.1
Full Changelog: v2.0.0...v2.1.1