202 lines
4.9 KiB
Markdown
202 lines
4.9 KiB
Markdown
# 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
|
|
```
|