Events
QoS events
Quality-of-service events let you catch playback regressions before your audience tweets about them.
startup_time
Fire once, immediately after first frame. Measure from user intent (tap Play) to first visible frame.
const intentTs = Date.now();
player.on('firstframe', () => {
rd.track({
eventType: 'startup_time',
content: { contentId, contentType: 'series' },
properties: {
startup_ms: Date.now() - intentTs,
manifest_type: 'hls',
drm: 'widevine',
},
});
});buffer (rebuffer)
Fire every time playback stalls and resumes. SeePlayback events for the API.
bitrate_change
Fire on every ABR ladder switch. Paired with heartbeat, this gives you time-weighted average bitrate per content and per region.
error
Standard error categories:
| Code | Meaning |
|---|---|
MANIFEST_LOAD_FAIL | m3u8 or mpd fetch failed |
MANIFEST_PARSE_FAIL | Corrupt manifest |
SEGMENT_LOAD_FAIL | CDN 4xx/5xx on segment |
DRM_LICENSE_FAIL | License server rejected |
DECODE_ERROR | Codec failure |
NETWORK_TIMEOUT | Client-side timeout |
UNKNOWN | Anything else |
rd.trackError('SEGMENT_LOAD_FAIL', 'GET https://cdn/.../seg_012.ts -> 504');cdn_response (advanced)
For deep CDN diagnostics, fire cdn_response on segment load with timing breakdown. This is optional — only enable when debugging a specific regression.
rd.track({
eventType: 'cdn_response',
properties: {
cdn: 'cloudfront',
pop: 'BOM53-C1',
segment_kb: 512,
ttfb_ms: 82,
download_ms: 145,
http_status: 200,
edge_cache: 'HIT',
},
});QoS metrics in the dashboard
| Metric | SLO target | Alert threshold |
|---|---|---|
| Startup time p95 | < 1.5s | > 3s for 10 min |
| Rebuffer ratio | < 1% | > 3% for 5 min |
| Error rate | < 0.5% | > 2% for 5 min |
| Avg bitrate | > 3 Mbps | < 2 Mbps for 15 min |
| Completion rate | regression-based | >20% drop vs 7d baseline |
Per-ISP and per-CDN breakdowns
The admin panel automatically slices every QoS metric by ISP (derived from IP via GeoIP2), device type, and region. Use this to answer questions like “Is Jio fibre worse than Airtel on our Maharashtra ABR ladder today?”