Stream heartbeat beacons

A stream heartbeat beacon includes health statistics of a variant produced by the encoder (but excludes any, generic and non-variant-specific encoder level details).

Based on whether a variant is audio only, video only, or multiplexed (both audio and video embedded together), either only video attributes, audio attributes or both audio and video attributes will be part of the beacon.

The following is a sample curl request for a stream heartbeat beacon:


curl -d --data beacon_type=encoder:heartbeat:stream&encoder_id=e007&encoder_ip=192.168.2.20&time=1456445060&stream_id=12345&variant_type=audio_video&video_bitrate=800&audio_bitrate=256&average_video_psnr=100&observed_video_bitrate=750&observed_audio_bitrate=256&audio_language=en&audio_codec_type=aac&audio_channels=5.1&output_url=https://domain.akamai.com/mystream.ts&average_latency=0.3&input_pkt_loss_ratio=2&max_hop_count=3&min_hop_count=1&avg_hop_count=2&max_path_time=100&min_path_time=50&avg_path_time=75&variant_running_since=1456445030  http://akamai-host-xyz.net

The parameters: beacon_type, encoder_id, encoder_ip, time, and stream_id are mandatory. Other parameters are recommended.

Stream heartbeat beacon parameters
Parameters Description Example value
beacon_type Type of the beacon. It must be encoder:heartbeat:stream for all the heartbeat beacons containing stream information. encoder:heartbeat:stream
encoder_id A unique identifier for the encoder. This should be constant for all the beacons generated from the same encoder. e007
encoder_ip IP address of the encoder. 192.168.2.20
time Represents the time when the beacon is generated (epoch). 1456445060
stream_id Stream identifier that uniquely identifies the stream per Akamai configuration. 12345
variant_type String description to identify if it is a video only, audio only, or audio_video bit stream. audio_video
video_bitrate String description to identify the video variant; generally the bitrate (kbps).

If the encoder is configured to generate multiple variants for the stream, then a separate heartbeat beacon is expected per variant.

You can exclude this field if the variant_type is audio_only.

800
audio_bitrate String description to identify the audio variant; generally the bitrate (kbps).

If the encoder is configured to generate multiple variants for the stream, then a separate heartbeat beacon is expected per variant.

You can exclude this field if the variant_type is audio_only.

256
average_video_psnr Identifies the video quality as produced by the encoder (if available, measured in db) 60
observed_video_bitrate String description to identify the actual observed bitrate for the video (kbps). 750
observed_audio_bitrate String description to identify the actual observed bitrate for the audio (kbps). 256
audio_language Language of the audio variant. EN
audio_codec_type Audio codec type for the variant. aac
audio_channels Number of audio channels. For example: Mono, stereo, 5.1, 7.1. 5.1
output_url String representation that identifies the generated output URL. https://hostname.akamai.com/mystream.ts
avg_latency Time taken to upload the total produced segments. If this is longer than the actual segment duration then there will be latency building up during the interval.

This is a ratio and should be expressed as a percentage. ((upload time * 100)% segment duration).

0.3
input_pkt_loss_ratio Metric to measure how lossy the connection is. It is measured as (#data packets retransmitted * 100)% (#data packets sent) in the given interval, in percentage 2
max_hop_count Number of hops seen from the encoder to the ingest server on the maximum (worst case) using traceroute. 3
min_hop_count Number of hops seen from the encoder to the ingest server on the minimum (best case) using traceroute. 1
avg_hop_count Number of hops seen from the encoder to the ingest server on an average basis using traceroute. 2
max_path_time Time taken (in milliseconds) by the encoder to reach the ingest server on the maximum (worst case) using traceroute. 100
min_path_time Time taken (in milliseconds) by the encoder to reach the ingest server on the minimum (best case) using traceroute. 50
avg_path_time Time taken (in milliseconds) by the encoder to reach the ingest server on average using traceroute. 75
variant_running_since Time when the variant last became active. It can be different from the encoder startup time (for example, a new variant added since last encoder restart). 1456445030

The following is an example stream heartbeat beacon configuration:


beacon_type=encoder:heartbeat:stream&
encoder_id=e007&
encoder_ip=192.168.2.20&
time=1456445060&
stream_id=12345&
variant_type=audio_video&
video_bitrate=800&
audio_bitrate=256&
observed_video_bitrate=750&
observed_audio_bitrate=256&
average_video_psnr=60&
audio_language=en&
audio_codec_type=aac&
audio_channels=5.1&
output_url=https://domain.akamai.com/mystream.ts&
average_latency=0.3&
input_pkt_loss_ratio=2&
max_hop_count=3&
min_hop_count=1&
avg_hop_count=2&
max_path_time=100”&
min_path_time=50&
avg_path_time=75&
variant_running_since=1456445030