Skip to content

Observe recent playback

Monitoring observes recent VOD playback using collector samples. It does not implement live ingest or broadcasting. Collection must be enabled and data:read permission is required.

const presence = await orilla.data.monitoring.timeseries(
"current-concurrent-viewers",
);
const groups = await orilla.data.monitoring.breakdownTimeseries(
"current-concurrent-viewers",
{
dimension: "video_title",
timeframe: ["60:seconds"],
limit: 10,
order_by: "views",
order_direction: "desc",
},
);
for (const point of groups.data) console.log(point.date, point.values);

Grouped series support the six current monitoring metrics and collected scalar dimensions. Each point uses five-second samples. Without a period, queries cover 60 seconds ending 15 seconds before the current clock; you can request up to ten minutes within the last 24 hours. Only complete buckets are included.

limit defaults to 10 and allows up to 100 per point. Groups are selected for each point: they do not form a fixed global Top N. order_by: 'value' sorts by the metric; views, by concurrent viewers; field, by label. Buckets without groups preserve values: []. Sorting by negative_impact is not supported.

const histogram = await orilla.data.monitoring.histogramTimeseries(
"video-startup-time",
{ filters: ["video_title:My video"] },
);
console.log(histogram.meta.buckets, histogram.orilla.coverage);

The histogram returns 30 complete UTC minutes and accepts only filters. Each view with an observed first frame counts once in its minute; startup time is not inferred from watch time. Buckets range from 0–100 ms to 15,000 ms or more. end: null means no upper bound.

sum is a view count, not a sum of milliseconds. Average, median, and p95 are milliseconds; percentages are ratios from 0 to 1. An empty minute shows zero counts and null statistics.

Presence expires after 30 seconds. Counters interpolate adjacent samples; gaps greater than 30 seconds are excluded. Continuous buffering longer than five minutes is excluded. Failure rates consider only known outcomes and are null without an eligible population. Check denominators and coverage before comparing.

Grouped series and histograms support up to 5,000 candidate views and five seconds per SQL statement. Exceeding a limit or timing out returns 429: reduce the period or population. Dimension metadata reflects the most recently corrected view; it is not a history of its labels.

orilla.data.realtime.metrics(), dimensions(), timeseries(), breakdown(), and histogramTimeseries() are legacy aliases for these queries. They remain for existing integrations; use monitoring for new ones. The legacy catalog does not offer a breakdown-timeseries alias or add another pipeline.

See comparisons and insights for historical populations and alerts to receive incident notifications.