Tapemetric

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.

typescript
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:

CodeMeaning
MANIFEST_LOAD_FAILm3u8 or mpd fetch failed
MANIFEST_PARSE_FAILCorrupt manifest
SEGMENT_LOAD_FAILCDN 4xx/5xx on segment
DRM_LICENSE_FAILLicense server rejected
DECODE_ERRORCodec failure
NETWORK_TIMEOUTClient-side timeout
UNKNOWNAnything else
typescript
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.

typescript
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

MetricSLO targetAlert 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 rateregression-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?”