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 | |
ContentSteeringEnabled |
string | |
ContentSteeringPathway |
string | |
ContentSteeringPathwayPriority |
string | |
ContentSteeringResourceId |
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 | |
ContentSteeringEnabled |
string | |
ContentSteeringPathway |
string | |
ContentSteeringPathwayPriority |
string | |
ContentSteeringResourceId |
string | |
Coordinates |
spatial | |
CountryCode |
string | |
CurrentHost |
string | |
CustomDimension1 |
string | |
CustomDimension2 |
string | |
CustomDimension3 |
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.
AggregateBufferFillingRate ¶
The rate at which the content is received versus playing time. This is represented by the amount of playout time received divided by the download time. The metric is computed separately for CDN and P2P offload scenarios.
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...) has 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
ContentSteeringEnabled ¶
Represents the enabled status of the Content Steering service. This will change in real time when it is enabled or disabled by the integrator.
ContentSteeringPathway ¶
Represents the pathway that the SDK used for the last content request to CDN. This is one of the
pathway names from ContentSteeringPathwayPriority
.
ContentSteeringPathwayPriority ¶
Represents the list of CDN names the Content Steering server answered on the last call.
ContentSteeringResourceId ¶
Represents the resource ID in use for the Content Steering service.
Coordinates ¶
GeoIP derived location information.
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.
CustomDimension1 ¶
Custom field that can be set to arbitrary values with a max length of 256 characters and is stored as a string.
CustomDimension2 ¶
Custom field that can be set to arbitrary values with a max length of 256 characters and is stored as a string.
CustomDimension3 ¶
Custom field that can be set to arbitrary values with a max length of 256 characters and is stored as a string.
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...) has to be Null.
Ip ¶
Player node associated IPv4 address.
Latitude ¶
GeoIP derived latitude coordinate.
Longitude ¶
GeoIP derived 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
NodeId ¶
Represents the node connected as an outbound P2P data channel. The EI assigns a unique node ID to
identify the node. This does not change during the websocket life cycle. UplinkCapacity
, NodeId
and ReceiveFromNodeId
are used in the Edge Analytics Audience Topology representation.
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 bemonobitrate
. -
In DASH, it is obtained applying a CRC32 algorithm to the
id
attribute of theRepresentation
tag.
ReceiveFromNodeId ¶
Represents from which inbound node the SDK instance is receiving content, if it exists. If the node
does not have this info, the metric is not sent. UplinkCapacity
, NodeId
and ReceiveFromNodeId
are used in the Edge Analytics Audience Topology representation.
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 ¶
A 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.
StartingTime ¶
Represents the perceived time from the point of view of the user. It starts counting when the user interacts somehow with the view and/or the user is perceiving that it is waiting for the video to start. It ends counting when the video starts.
As of now, the count is not restarting when state is changed to paused and then back to playing.
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
].
UplinkCapacity ¶
The uplink capacity gives an approximation of the number of outbound connections that a peer can
maintain with its current video representation. It is used by Edge Intelligence to reorder the peer
tree. UplinkCapacity
, NodeId
and ReceiveFromNodeId
are used in the Edge Analytics Audience
Topology representation.
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.
ViewingTime ¶
This value denotes the duration of viewing in seconds.
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.
This section was last updated 2024-11-18