4.9 KiB
Introduction
This document describes some HTTP endpoints that can be useful when debugging jitsi-videobridge. With a few exceptions,
these are NOT intended to be used against production systems. Most endpoints return valid JSON which can be fed to e.g. jq:
curl http://localhost:8080/debug | jq .
Basic queries
Health
Returns 200 OK if the instance is currently healthy, and 4XX/5XX otherwise.
GET /about/health
Version
Returns the currently running version.
GET /about/version
Get Dominant speaker
Returns a dominant speaker identification
GET /colibri/v2/conferences/{meetingId}/dominant-speaker-identification
Overall statistics
Returns overall bridge statistics. These include number of current and total conferences and endpoints, number of packets/bytes received/sent, current packet rate and bit rate. They are generally suitable for storing as timeseries in order to monitor a service.
GET /colibri/stats
Detailed debug state
The following can be used to get very detailed state of running conferences and endpoints.
List conferences
This includes a list of all conferences and their endpoints, but not the full state.
GET /debug
List all conferences with full state
This includes the full state of all conferences and their endpoints. The output can be substantial (~25KB per endpoint).
GET /debug?full=true
List a specific conference with full state
This includes the full state of a specific conference and its endpoints. The output can be substantial (~25KB per endpoint).
The full output can be suspended (leaving just the list of endpoints) by adding ?full=false.
GET /debug/CONFERENCE_ID
Get full state for an endpoint
This includes the full state of a specific endpoint in a specific conference.
GET /debug/CONFERENCE_ID/ENDPOINT_ID
Global debug options and statistic features
These are features that affect the entire bridge (as opposed to a single endpoint or conference).
Payload verification
This mode enables verification of the RTP payload between each step of the packet pipeline. This is very CPU intensive and disabled by default (it is only useful for testing new code).
Enable:
POST /debug/stats/jvb/payload-verification/true
Disable:
POST /debug/stats/jvb/payload-verification/false
Query:
GET /debug/stats/jvb/payload-verification
Pipeline statistics
This keeps track of processing delay, number of discarded packets, number of packets by various types, etc. from each Node in the packet processing pipeline. The data is organized by Node type. This has low overhead and is enabled by default. Note that the data does not update in real-time, but only when endpoints expire.
Enable:
POST /debug/stats/jvb/node-stats/true
Disable:
POST /debug/stats/jvb/node-stats/false
Query:
GET /debug/stats/jvb/node-stats
Memory pool statistics
These include current size, number of requests, allocation rates, etc. for the application memory pools. This is disabled by default.
Enable:
POST /debug/stats/jvb/pool-stats/true
Disable:
POST /debug/stats/jvb/pool-stats/false
Query:
GET /debug/stats/jvb/pool-stats
Packet queue statistics
This keeps track of the number of dropped packets and exception caught in the various packet queues. It is enabled by default.
Enable:
POST /debug/stats/jvb/queue-stats/true
Disable:
POST /debug/stats/jvb/queue-stats/false
Query:
GET /debug/stats/jvb/queue-stats
Packet transit time statistics
This keeps track of the overall transit time for RTP/RTCP packets (average, max, and a distribution), as well as the jitter introduced in processing. It is always enabled.
Query:
GET /debug/stats/jvb/transit-stats
Task pool stats
This keeps track of statistics for the various task pools (CPU, IO, scheduled). It is always enabled.
Query:
GET /debug/stats/jvb/task-pool-stats
XMPP Delay stats
This keeps track of the response time for requests received over XMPP.
Query:
GET /debug/stats/jvb/xmpp-delay-stats
Node tracing
This adds an entry to the stack trace from each Node in the packet processing pipeline.
Enable:
POST /debug/stats/jvb/node-tracing/true
Disable:
POST /debug/stats/jvb/node-tracing/false
Endpoint-specific debug options and features
These are features that can be enabled for a specific endpoint in a specific conference.
Saving RTP/RTCP in PCAP
This enables saving the RTP and RTCP traffic sent/received from a specific endpoint to a PCAP file in /tmp/.
The use of this feature is disabled by default, and the bridge needs to be explicitly configured to
allow it by setting jmt.debug.pcap.enabled=true in /etc/jitsi/videobridge/jvb.conf.
Enable:
POST /debug/features/endpoint/CONFERENCE_ID/ENDPOINT_ID/pcap-dump/true
Disable:
POST /debug/features/endpoint/CONFERENCE_ID/ENDPOINT_ID/pcap-dump/false