Monitoring HLS streams

HLS is a de-facto standard for end-user live streaming. It's widely supported on all major client platforms.

Qosifire allows monitoring the quality of service and quality of content of HLS streams. A customer installs monitoring agent on designated server, then sets up monitoring settings using Qosifire web console. Qosifire supports HLS both available containers, MPEGTS and fMP4 (including CMAF) for video/audio and audio-only.

Learn more abouthow Qosifire can help your use cases.

In Qosifire, a stream is a basic unit which defines specific live stream to monitor and its check-over parameters.

To learn more about stream setup, readManaging streams article in our knowledge base. Current article describes how HLS steams are monitored and what stream characteristics you may check with Qosifire.

Also checkGetting started guide to see how you can initiate Qosifire usage in a few easy steps.

Viewing streams stats

To view currently monitored streams, log into Qosifire and click on Streams menu in the navigation panel.

Each stream has its name and URL, current status and logging settings.

The statuses can be one of the following

  • Idle means the streams was added but not yet synced up with agent node.
  • Syncing means the stream are being synced at this moment, it normally takes several seconds.
  • Online means that the stream is being checked and it's working with no errors.
  • Offline means the stream is not received.

Clicking on the stream name will open its status page.

Stream status chart

First, you'll see Stream status chart, showing number of events - both successful events and errors. It's a basic overview to get a picture of what was going on with the stream.

Playlists flow panel

This panel allows tracking the downloads of chunklists and chunks, as well as browsing the original playlist and chunklists.

Playlist tab allows viewing original playlist used for further stream tracking.

Flow tab shows the history of downloads for chunklists and chunks. You can click on chunklist for any given moment of time to view it.

Watch this video to see how Qosifire dynamically displays the chunklist and other stream's parameters:

Each rendition has its tab which shows current chunklist. It's updated real-time, but you can freeze it at particular moment. If you open chunklist from the Flow tab, it's shown in its respective state.

Take a look at this video showing how HLS ABR streams are tracked:

Downloads chart

This chart shows the timeline of download of chunklists and chunks for each rendition in HLS stream.

Each rendition has its own time line. The dark blue line shows downloaded pieces of content, the light blue indicates the content piece which is being downloaded at the moment. The size of each piece shows its length.

Stream events feed

This is a panel on the right side of the page which shows events received from the agents regarding this stream, in the reverse order of reception. Some of the events initiate sending a notification to proper subset of users, we'll mention them specifically. The following events are displayed.

General events:

  • Task started - the agent started the task of continuous check-over.
  • Task finished - the agent finished check-over, e.g. a node was unassigned from this stream.

DNS-related and network events:

  • Hostname resolved for the stream URL.
  • Failed to resolve host for the URL. This event generates user notification.
  • Redirect to other URL.
  • Connected to host means the agent has connected successfully to stream.
  • Failed to connect in case connection to the stream has failed. This event generates user notification.

HLS-specific events:

  • Stream info shows general information for the stream.
  • Invalid task means some invalid URL was used for defining the stream.
  • Bad playlist means that the received playlist is incorrect for some reason.
  • Bad chunklist means that the received chunklist is incorrect.
  • Request timeout indicates that agent could not complete the download of chunk, playlist or chunklist in 5 seconds.
  • Gap in chunklist means that there was a gap in chunklist which caused problem in playback.
  • Wrong media sequence indicates issue with media sequence in chunklist. E.g. you get this error in your notification:
    Wrong media sequence: {"url"=>"http://your.server/live/stream/chunks.m3u8", "prev"=>1792, "new"=>1791}
    This means newer chunklist has older sequence number in it. You need to check your server to see why it generates that. One of the reasons is incorrect caching on server.
  • Chunklist params changed shows that some chunk in chunklist has different URL.
  • Bad chunk means the downloaded chunk was not valid for processing.
  • Bad init segment indicates that init segment was broken.
  • Buffer too short means that the buffer sent by the server is too short for proper playback and check. This event generates user notification.Read this articlefor more details.
  • Buffer too long means that the buffer sent by the server is too long for the player. This event generates user notification.

Most of events have Details button which allows you to see more information about what's happened at that point of time.

Traffic

Traffic chart shows how much data was received from the stream each second.

Bandwidth

Bandwidth chart shows an average transmission speed of a stream.

Buffer charts

Another series of chars show buffer size available on agent for all renditions. Each individual rendition has its own separate chart.

Using teams for access control

The stream's details can be viewed by:

  • All admin users.
  • Non-admin users who are assigned to a team which has access to current stream.

To learn more about using teams for access control, please refer toUsing teams article.

Receiving notifications

As mentioned above, some of the events initiate sending notifications to the users who were eligible for receiving the messages a(href="../docs/360031706811-Setting-and-using-alerts.pug") as described in this article . The web console will use the user account email to send them. If the user has installed our app on a mobile device and has registered in the system, then this user will also get a push notification.

How to stop monitoring a stream

Point to stream in streams' list, you will see icons on the right - Pause, Edit and Delete. So just click on Pause, this will un-assign all nodes from the stream and initiate "Task finished" event. You won't get any notifications going forward. If you'd like to resume, click on Play, this will assign a stream back.