Skip to main content
View as Markdown

Live Analytics - Analytics

Live Analytics​

Real-time analytics for active live streams.

liveReports.getEvents​

Parameters

ParameterTypeRequiredDescription
reportTypestringYesReport type string. Use ENTRY_TIME_LINE for per-entry live viewer timeline
filter[objectType]stringYesAlways KalturaLiveReportInputFilter
filter[entryIds]stringYesLive entry ID(s) to monitor
filter[fromTime]intYesStart of time window as Unix timestamp in seconds
filter[toTime]intYesEnd of time window as Unix timestamp in seconds
filter[live]intNoSet to 1 to include only live (not DVR) viewers
# Calculate time window: now - 110s to now - 20s (90-second window)
FROM_UNIX=$(($(date +%s) - 110))
TO_UNIX=$(($(date +%s) - 20))

curl -X POST "$KALTURA_SERVICE_URL/service/liveReports/action/getEvents" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "reportType=ENTRY_TIME_LINE" \
-d "filter[objectType]=KalturaLiveReportInputFilter" \
-d "filter[entryIds]=$KALTURA_ENTRY_ID" \
-d "filter[fromTime]=$FROM_UNIX" \
-d "filter[toTime]=$TO_UNIX" \
-d "filter[live]=1"

The 20-second offset accounts for data propagation delay. Use the 90-second window for reliable real-time viewer counts.

Stream Health via beacon.list​

Parameters

ParameterTypeRequiredDescription
filter[objectType]stringYesAlways KalturaBeaconFilter
filter[eventTypeIn]stringYesBeacon types (comma-separated). Health: 0_healthData,1_healthData. Diagnostics: 0_staticData,0_dynamicData,1_staticData,1_dynamicData
filter[indexTypeEqual]stringYeslog for health alerts (time-series), state for diagnostics (latest snapshot)
filter[relatedObjectTypeIn]stringYesObject type. Use 4 for entry-level beacons
filter[objectIdIn]stringYesEntry ID(s) to monitor
filter[orderBy]stringNoSort order. Use -updatedAt for most recent first

Health Beacons (Alerts)​

curl -X POST "$KALTURA_SERVICE_URL/service/beacon/action/list" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "filter[objectType]=KalturaBeaconFilter" \
-d "filter[eventTypeIn]=0_healthData,1_healthData" \
-d "filter[indexTypeEqual]=log" \
-d "filter[relatedObjectTypeIn]=4" \
-d "filter[objectIdIn]=$KALTURA_ENTRY_ID" \
-d "filter[orderBy]=-updatedAt"

Diagnostics Beacons (Encoder Data)​

curl -X POST "$KALTURA_SERVICE_URL/service/beacon/action/list" \
-d "ks=$KALTURA_KS" \
-d "format=1" \
-d "filter[objectType]=KalturaBeaconFilter" \
-d "filter[eventTypeIn]=0_staticData,0_dynamicData,1_staticData,1_dynamicData" \
-d "filter[indexTypeEqual]=state" \
-d "filter[relatedObjectTypeIn]=4" \
-d "filter[objectIdIn]=$KALTURA_ENTRY_ID"

Beacon event type prefixes: 0_ = primary stream, 1_ = backup/secondary stream.

Stream health severity levels:

LevelNameDescription
0DebugVerbose diagnostic data
1InfoNormal operational events
2WarningPotential issues requiring attention
3ErrorStream quality degradation
4CriticalStream failure or severe degradation
Data TypeIntervalEndpoint
Stream status5 secondsentryServerNode.list
Stream health alerts10 secondsbeacon.list (log index)
Stream diagnostics30 secondsbeacon.list (state index)
Live viewer analytics30 secondsliveReports.getEvents

Realtime Report Types​

Use these report types with report.getTable / report.getGraphs for live dashboard panels:

IDNameDescription
10005USERS_OVERVIEW_REALTIMECurrent concurrent viewers and engagement
10006QOS_OVERVIEW_REALTIMEQuality of Experience: buffer rate, bitrate, error rate
10001MAP_OVERLAY_COUNTRY_REALTIMELive geographic distribution by country
10002MAP_OVERLAY_REGION_REALTIMELive geographic distribution by region
10003MAP_OVERLAY_CITY_REALTIMELive geographic distribution by city
10004PLATFORMS_REALTIMELive device breakdown
10008ENTRY_LEVEL_USERS_DISCOVERY_REALTIMEPer-entry live viewer counts
10011PLAYBACK_TYPE_REALTIMELive vs DVR vs VOD breakdown
10007DISCOVERY_REALTIMEReal-time content discovery metrics