Edge Intelligence Data Model¶
Datasources¶
Edge Intelligence 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
Important
Please email support@system73.com to request your assigned region and corresponding customer id.
Schema¶
The following table describe the schema shared by all Edge Intelligence 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 | |
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 |
RollupCount |
long | count |
StartingTime |
long | longMax |
TotalDownlinkThroughput |
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 |
RollupCount |
long | count |
SeekingTime |
long | longMax |
StartingTime |
long | longMax |
TimeToFirstFrame |
long | longMax |
TotalDownlinkThroughput |
long | longSum |
UplinkCapacity |
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 Intelligence 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 Intelligence content mapping schema. Together with the stream_id, 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 connection_status for more information about this behavior.
Important
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 attribute
"id" of the tag "representation".
ResponseCdn¶
Represents the X-CDN
HTTP response header (if present) returned in the last completed HTTP request.
RollupCount¶
This represents the number of rows that have been rolled up at ingestion time, this fields is only relevant on historical datasources.
SdkVersion¶
Identifies the version of the Edge Intelligence 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.