What's New
New Collectors
- Transcoding — Monitor active transcoding sessions with detailed metrics: codecs, bitrate, framerate, resolution, hardware acceleration status, and transcoding reasons. Enable with
--collector.transcoding. - Storage — Track free and used bytes across Jellyfin storage locations (program data, cache, libraries, etc.). Enable with
--collector.storage. - Tasks — Observe scheduled task state, progress, last run duration, and completion status. Enable with
--collector.tasks.
Enhanced Metrics
- Playing — Now includes playback position, duration, remaining time, and progress percentage per session.
- System — Now exposes server info (version, server name, product) and pending restart status.
- Users — Now reports user account details (admin status, last access, active/disabled) and active session info (client, device, IP address).
Improvements
- Improved error handling across all collectors.
- Simplified session data sharing between collectors.
- Major codebase refactor with consistent coding patterns.
- Significantly improved test coverage.
- Upgraded Go toolchain and modules.
- Improved CI/GitHub workflows.
Breaking Changes
The following metrics changed type from Counter to Gauge:
jellyfin_activity_countjellyfin_media_countjellyfin_up
If you have Prometheus recording rules or alerts using rate() or increase() on these metrics, they will need to be updated.
Upgrading
All existing metric names and collector flags remain compatible. The three new collectors (transcoding, storage, tasks) are disabled by default and must be opted into.