Diagnostics
Health
Section titled “Health”curl -s localhost:9001/health{ "status": "ok", "version": "0.1.0", "commit": "4e6b24eb2c10", "uptime_secs": 18, "live_streams": 0, "errors": 0, "warnings": 0 }Unauthenticated on purpose, so it can back a load balancer or a container
healthcheck. commit identifies the exact build, which matters when a report
says “0.1.0” and that version spans hundreds of commits.
The binary can also check itself, which is what the container healthcheck uses:
jadarit --healthLogs go to stdout, to rotating files, and to an in-memory ring the dashboard reads live.
curl -b jar http://localhost:9001/api/v1/logs # recent eventsjournalctl -u jadarit -f # systemddocker logs -f jadarit # containerLevel, destination, rotation, and ring size are set in
[logging]. RUST_LOG overrides the
level when set, and takes per-module filters:
RUST_LOG=info,ms_egress=debug jadaritSet json = true to emit JSON lines for a log collector. It is harder to read
by eye, so leave it off unless something is consuming it.
Crash reports
Section titled “Crash reports”A panic is captured to disk with its message and backtrace, rather than being lost to a restart.
curl -b jar http://localhost:9001/api/v1/crashes # listcurl -b jar http://localhost:9001/api/v1/crashes/<file> # read onecurl -b jar -X DELETE http://localhost:9001/api/v1/crashes/<file>The server also notices when it exited uncleanly last time, using a run marker, so a crash that left no report is still visible after the fact.
Diagnostics bundle
Section titled “Diagnostics bundle”curl -b jar -o diagnostics.json http://localhost:9001/api/v1/diagnosticsDescribes the installation: version and commit, configuration, licence state, active streams, recent errors, and crash history. Attach this to a support request. It answers the first several questions we would otherwise have to ask.
Review it before sending if your configuration holds anything you would rather not share.
When something is wrong
Section titled “When something is wrong”| Symptom | Look at |
|---|---|
| Publisher connects, nothing appears | Logs at publish time; check the application’s ingest mode and the key |
| Stream shows live but is frozen | It should end on disconnect. Check stats for time since the last frame |
| WebRTC works locally, not remotely | public_ip and the UDP port range in [webrtc] |
| HLS plays, WebRTC does not | Almost always UDP reachability, not the server |
| Feature returns 402 | The licence lapsed past its grace period. See Licensing |
| Ad break never plays | Check the ad is conditioned via GET /apps/{app}/ads |