← Back to Home

Events & Metrics Reference

Complete documentation of all QoE events, metrics, and context data captured by OpenQoE.

Playback Events

OpenQoE captures 12 core event types that track the complete video playback lifecycle.

playerready

Player initialized and ready to play video content.

  • player_startup_time (ms)
  • page_load_time (ms)

viewstart

Video view/session started by the viewer.

  • video_startup_time (ms)
  • preroll_requested (boolean)

playing

Playback started or resumed after pause.

  • bitrate (bps)
  • resolution (width × height)
  • framerate (fps)

pause

Playback paused by viewer or automatically.

  • playing_time (ms)

seek

User initiated seek/scrub to different position.

  • from (ms)
  • to (ms)
  • seek_latency (ms)

stall_start

Rebuffering started due to insufficient buffer.

  • buffer_length (ms)
  • bitrate (bps)

stall_end

Rebuffering ended, playback resumed.

  • stall_duration (ms)
  • buffer_length (ms)

quality_change

Video quality/bitrate changed (ABR switch).

  • previous_bitrate (bps)
  • new_bitrate (bps)
  • previous/new_resolution
  • trigger (abr/manual)

ended

Video playback completed successfully.

  • playing_time (ms)
  • total_watch_time (ms)
  • completion_rate (0-1)
  • rebuffer_count

error

Playback error occurred (network, decoder, DRM, etc).

  • error_family
  • error_code
  • error_message
  • error_context

quartile

Quartile milestone reached (25%, 50%, 75%, 100%).

  • quartile (25/50/75/100)
  • playing_time (ms)
  • watch_time (ms)

heartbeat

Periodic alive signal during playback (every 10s).

  • playing_time (ms)
  • bitrate (bps)
  • buffer_length (ms)
  • dropped_frames

QoE Metrics

22 production-ready metrics across 6 categories for comprehensive quality monitoring.

Startup Startup Time Metrics

Metric Type Description
openqoe_aggregate_startup_time Histogram Total time from player init to first frame (ms)
openqoe_player_startup_time Histogram Time to initialize player instance (ms)
openqoe_video_startup_time Histogram Time from play request to first frame (ms)
openqoe_page_load_time Histogram Page load time before player init (ms)
openqoe_video_startup_failure_percentage Gauge Percentage of failed video starts (0-1)

Smoothness Rebuffering Metrics

Metric Type Description
openqoe_rebuffer_percentage Gauge Rebuffer time as % of play time (0-1)
openqoe_rebuffer_duration Histogram Duration of rebuffering events (ms)
openqoe_rebuffer_frequency Gauge Rebuffer events per minute of playtime
openqoe_rebuffer_count Histogram Total rebuffer events per session
openqoe_rebuffer_score Gauge Smoothness quality score (0-1, higher is better)

Quality Video Quality Metrics

Metric Type Description
openqoe_weighted_average_bitrate Histogram Time-weighted average bitrate (bps)
openqoe_upscale_percentage Histogram % of time video upscaled (resolution < display)
openqoe_downscale_percentage Histogram % of time video downscaled (resolution > display)
openqoe_video_quality_score Gauge Overall quality score (0-1, higher is better)

Engagement Viewer Engagement Metrics

Metric Type Description
openqoe_playing_time_seconds Counter Total time video was actually playing
openqoe_watch_time_seconds Counter Total session duration (includes pauses)
openqoe_views_total Counter Total number of video views/sessions
openqoe_unique_viewers Gauge Count of unique viewers (hashed IDs)

Failures Error & Failure Metrics

Metric Type Description
openqoe_exits_before_video_start_percentage Gauge % of sessions abandoned before video started
openqoe_playback_failure_percentage Gauge % of sessions with fatal playback errors

Experience Composite QoE Scores

Metric Type Description
openqoe_viewer_experience_score Gauge Overall viewer experience (0-1, higher is better)
openqoe_startup_time_score Gauge Startup performance score (0-1, higher is better)

Context Objects

Rich contextual data captured with every event for deep analysis.

device

  • name (e.g., "MacBook Pro")
  • model (e.g., "MacBookPro18,1")
  • category (desktop/mobile/tablet/tv)
  • manufacturer (e.g., "Apple")

os

  • family (e.g., "macOS", "Windows")
  • version (e.g., "14.1")

browser

  • family (e.g., "Chrome", "Safari")
  • version (e.g., "120.0.0")

player

  • name (html5/videojs/hlsjs/dashjs/shaka)
  • version (player library version)
  • autoplay (boolean)
  • preload (none/metadata/auto)

network

  • asn (Autonomous System Number)
  • country_code (ISO 2-letter)
  • region (state/province code)
  • city (optional, based on policy)

cdn

  • provider (e.g., "cloudflare")
  • edge_pop (e.g., "SFO")
  • origin (origin server hostname)

video

  • id (unique video identifier)
  • title (video name/title)
  • series (series/show name)
  • duration (total duration in ms)
  • source_url (sanitized manifest URL)

custom

  • custom_1 through custom_10
  • User-defined dimensions
  • Business-specific metadata

Privacy-First Design

All viewer identifiers are SHA-256 hashed with per-org salt before transmission. PII collection is disabled by default and requires explicit opt-in. Geographic data can be limited to country-level only.

CMCD Support

Native support for Common Media Client Data (CTA-5004) standard.

OpenQoE automatically captures CMCD data when available from the player, providing standardized metrics for CDN optimization and server-side decision making. All 18 CMCD fields are supported.

Key CMCD Fields

Field Key Description
Buffer Length bl Current buffer length (ms)
Buffer Starvation bs Buffer starvation occurred (boolean)
Measured Throughput mtp Measured network throughput (kbps)
Object Type ot m/a/v/i/c/tt/k/o (manifest/audio/video/init/etc)
Streaming Format sf d/h/s/o (DASH/HLS/Smooth/other)
Stream Type st v/l (VOD/Live)
Top Bitrate tb Highest available bitrate (kbps)

Use Cases for CMCD Data

  • CDN Optimization: Identify delivery bottlenecks and optimize edge caching
  • ABR Tuning: Understand adaptive bitrate decisions and buffer health
  • Network Troubleshooting: Correlate throughput with QoE issues
  • Format Analysis: Compare DASH vs HLS performance

Dimensions & Labels

Flexible labeling system for filtering and grouping your QoE data.

Required Dimensions

Always present on all metrics and events:

Monitoring Dimensions

Fixed set for real-time operational monitoring:

Historical Dimensions

Broader set for deep historical analysis:

Cardinality Management

OpenQoE automatically manages dimension cardinality to keep your time-series database performant. High-cardinality dimensions like video_title are capped at top-100 values with automatic rollup to "Other".

Ready to monitor your video QoE?

Start capturing these events and metrics in your video platform today.

Get Started on GitHub Read Deployment Guide