Skip to content

Edge Analytics Data Model

Datasources

Edge Analytics metrics are stored in three datasources per region, each one corresponds to a data layer or sub-layer.

Datasource name Data layer / sub-layer Query granularity
sdk-<region>-realtime Realtime second
sdk-<region>-historical-minute Historical by minute minute
sdk-<region>-historical-hour Historical by hour hour

Note

The <region> placeholder must be replaced with one of following values:

  • americas
  • apac
  • emea

Schema

The following table describe the schema shared by all Edge Analytics datasources corresponding to your Analytics Tier:

Field Name Data Type Indexed
__time timestamp
Bitrate string
ChannelId string
ConnectionStatus string
Coordinates spatial
CountryCode string
CustomerId string
DeviceId string
Latitude double
Longitude double
MaskedStreamUri string
NodeId string
PlayerState string
ReceiveFromNodeId string
RepresentationId string
ResponseCdn string
SdkVersion string
SessionId string
Source string
StreamState string
VideoResolutionHeight long
VideoResolutionWidth long
ViewportHeight long
ViewportWidth long
Field Name Data Type Aggregation Function
BufferHealth long longSum
CdnDownlinkThroughput long longSum
DownlinkSpeed long longMax
P2pDownlinkThroughput long longSum
StartingTime long longMax
TotalDownlinkThroughput long longSum
ViewingTime long longSum
Field Name Data Type Indexed
__time timestamp
AppName string
AppVersion string
Asn long
AsName string
Bitrate string
BrowserName string
BrowserVersion string
ChannelId string
ConnectionStatus string
ConnectionType string
Coordinates spatial
CountryCode string
CurrentHost string
CustomerId string
DeviceId string
HrefLocation string
Ip string
Latitude double
Longitude double
MaskedStreamUri string
NatType string
NodeId string
OsName string
OsVersion string
PlayerName string
PlayerState string
PlayerVersion string
ReceiveFromNodeId string
RepresentationId string
ResponseCdn string
SdkVersion string
SessionId string
Source string
StreamState string
VideoResolutionHeight long
VideoResolutionWidth long
ViewportHeight long
ViewportWidth long
Field Name Data Type Aggregation Function
AggregateBufferFillingRate float floatSum
BufferHealth long longSum
BufferingEvents long longMax
BufferingTime long longMax
CdnDownlinkThroughput long longSum
DownlinkSpeed long longMax
DroppedFramesPerSecond long longMax
P2pDownlinkThroughput long longSum
PauseTime long longMax
PlayingTime long longMax
SeekingTime long longMax
StartingTime long longMax
TimeToFirstFrame long longMax
TotalDownlinkThroughput long longSum
UplinkCapacity long longSum
ViewingTime long longSum

Tip

Check documentation on supported data types to get more details.

Fields

__time

Built-in field containing the timestamp associated to a data row. Queries should always filter by this field to avoid scanning or loading excessively large amounts of data at query time.

AppName

This value represents the application name.

Important

It is an exposed property. Only computable for the native platforms SDK (Android, iOS...). For the Web SDK has to be Null.

AppVersion

This value represents the application version.

Important

It is an exposed property. Only computable for the native platforms SDK (Android, iOS...). For the Web SDK has to be Null.

Asn

Autonomous System Number (ISP information).

AsName

Name associated with the Autonomous System Number (ISP information).

Bitrate

Identifies the bitrate currently played by the player in bps (bits per second).

Implementation

  • HLS, the bitrate is computed as the BANDWIDTH field in the #EXT-X-STREAM-INF tag. If there is not a master playlist, the bitrate is obtained as an estimation by dividing the segment size into the segment duration, saving always the max of all computed segments. If neither the bitrate nor estimated bitrate exists, then this metrics is not sent.
  • DASH, the bitrate is taken from the attribute "bandwidth" of the "representation" tag.

BrowserName

This value represents the browser name and is taken by parsing the browser's User-Agent HTTP header.

Sample field values

Examples of reported values:

  • chrome
  • chromium
  • firefox
  • edge_chromium
  • edge
  • opera
  • safari
  • unknown
  • null (only on SDK versions <= 3.25)

Important

Only computable for the Web SDK. For native platforms (Android, iOS...) has to be Null.

BrowserVersion

This value represents the browser version.

Important

Only computable for the Web SDK. For native platforms (Android, iOS...) have to be Null.

BufferHealth

Identifies the size of the available video buffer for the player, measured in milliseconds.

BufferingEvents

This value represents the number of buffering events happened during the current viewing session.

BufferingTime

This value represents the total time in milliseconds spent handling rebuffering events within the viewing session.

CdnDownlinkThroughput

The amount of data as payload received from the CDN during the last reporting period. Value in Kbits (Kilobits).

Important

This includes video, playlists, subtitles, audio, etc.

ChannelId

An optional setting defined on the SDK, it identifies a set of streams that together form a unified program or content.

ConnectionStatus

Identifies the status of the current device connection running the SDK.

Field values
  • NO_PARENT
  • P2P_CONNECTING
  • P2P_CONNECTED
  • P2P_NOT_SUPPORTED
  • PROTOCOL_NOT_SUPPORTED
  • CONTENT_NOT_SUPPORTED
  • NOT_ALLOWED
  • MAX_USERS_PER_KEY_REACHED
  • MEDIA_SOURCE_EXTENSIONS_NOT_SUPPORTED
  • UNKNOWN_STATUS

ConnectionType

Identifies the type of the current device connection running the SDK. These values follow the W3C Standards described in the Network Information API Specification.

Field values
  • UNKNOWN
  • NONE
  • OTHER
  • BLUETOOTH
  • CELLULAR
  • ETHERNET
  • WIFI
  • WIMAX

Coordinates

Player node GPS coordinates.

CountryCode

Country code, as per the ISO 3166-2 standard, associated to the player.

CurrentHost

Identifies the current host. This value will return the host name with the port number of the last completed request using HTTP.

CustomerId

Identifies the System73 customer account.

DeviceId

An universal unique identifier (UUID) for the device running the SDK.

Important

Different browsers running in the same device will generate different DeviceIds.

DownlinkSpeed

The total size of downloaded data (only video content is computed) divided by the download time. Value in Kbps (Kilobits per second).

DroppedFramesPerSecond

Identifies the number of dropped frames in the last report window (1 second).

HrefLocation

This value represents the Web URL where the SDK is being used.

Important

Only computable for the Web SDK. For native platforms (Android, iOS...) have to be Null.

Ip

Player node associated IPv4 address.

Latitude

Player node associated latitude coordinate.

Longitude

Player node associated longitude coordinate.

MaskedStreamUri

Identifies the URI of the stream using a regular expression to remove all user tokens. This value might be sent as no-masked-stream-uri when the service has not been able to obtain it. See connection_status for more information about this behavior.

Important

The masked_stream_uri is obtained applying an algorithm where the user tokens are removed. The masked_stream_uri reported is the last assigned by backend in join response.

NatType

Identifies the type of NAT of the current device connection running the SDK.

Field values
  • UNKNOWN
  • NON_SYMMETRIC
  • SYMMETRIC
  • SEQUENTIAL

OsName

This value represents the operating system name and are taken by parsing the browser's User-Agent HTTP header.

Field values
  • ios
  • tvos
  • macos
  • android
  • android_tv
  • linux
  • windows
  • unknown

OsVersion

This value represents the operating system version.

P2pDownlinkThroughput

The amount of data as payload received from P2P during the last reporting period. Value in Kbits (Kilobits).

Important

This includes only video.

PauseTime

This value represents the total time (ms) with video paused within the viewing session.

PlayerName

This value represents the player name.

Field values
  • avplayer
  • exoplayer
  • jwplayer
  • jwplayer-hlsjs
  • videojs
  • videojs-hlsjs
  • shakaplayer
  • bitmovin
  • clapper-hlsjs
  • dashjs
  • flowplayer-hlsjs
  • hlsjs
  • ooyala
  • unknown
  • null (only on SDK versions <= 3.25)

PlayerState

This value represents the different states of the player.

Field values
  • starting
  • playing
  • seeking
  • buffering
  • pause
  • unknown

PlayerVersion

This value represents the player version.

PlayingTime

This value represents the total time watching video within the viewing session.

RepresentationId

Identifies any variant of the same stream using Edge Analytics services (f.i. bitrate). A representation is described by the common URI scheme that points to the same video content, valid for all viewers. It's also known as rendition.

It represents second level of indexing in the Edge Analytics content mapping schema. Together with the StreamId, they identify a particular tree.

This value might be sent as no-representation-id when the service has not been able to obtain it. See ConnectionStatus for more information about this behavior.

Notes

  • In HLS, it is obtained applying a CRC32 algorithm to the #EXT-X-STREAM-INF line of the master playlist removing leading and trailing spaces. In case a media playlist is given, the value reported will be monobitrate.

  • In DASH, it is obtained applying a CRC32 algorithm to the id attribute of the Representation tag.

ResponseCdn

Represents the X-CDN HTTP response header (if present) returned in the last completed HTTP request. Users must implement the X-CDN header in the responses of the particular CDN vendors in order to get this dimension properly populated.

SdkVersion

Identifies the version of the Edge Analytics SDK. It's a three digit version number x.y.z.

SeekingTime

This value represents the total time spent (ms) making seeks within the viewing session.

SessionId

An universal unique identifier (UUID) for all the life cycle of the SDK. A new instantiation of the SDK must create a new value. We need this for the calculation of the new metrics.

Source

Identifies the source where the video content is currently downloading.

StreamId

Unique identifier of the video stream.

StreamState

This value represents the different states of the stream and the position inside of it.

Field values
  • Live
  • VOD (Video On Demand)
  • DVR (Digital Video Recorder)

TimeToFirstFrame

Identifies the time in milliseconds beginning with the SDK start until the player shows the first video frame.

TotalDownlinkThroughput

This is the sum of CDN and P2P downlink throughput = [ CdnDownlinkThroughput + P2pDownlinkThroughput].

VideoResolutionHeight

This value represents the number of pixels in Y dimension that are being displayed from the video.

VideoResolutionWidth

This value represents the number of pixels in X dimension that are being displayed from the video.

ViewportHeight

This value represents the number of pixels in Y dimension that are being displayed from the frame.

ViewportWidth

This value represents the number of pixels in X dimension that are being displayed from the frame.

ViewingTime

This value denotes the duration of viewing in seconds.


This section was last updated 2024-01-24