This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
en:statistics_drop [2017/11/03 09:21] Alexander |
en:statistics_drop [2019/02/18 12:05] (current) Vladimir Manov |
||
---|---|---|---|
Line 5: | Line 5: | ||
\\ | \\ | ||
\\ | \\ | ||
- | Statistics is sent to a specified HTTP URL over POST request. One request can contain more then one metric report.\\ | + | Statistics is sent to a specified HTTP URL over POST request. URL is set up over provisioning. One request can contain more then one metric report.\\ |
+ | Period of statistic send/accumulation is set up over provisioning. After Statistics is first enabled (incl. STB boot), first accumulation period is randomly increased.\\ | ||
Example JSON request: | Example JSON request: | ||
<code javascript> | <code javascript> | ||
Line 11: | Line 12: | ||
{ | { | ||
"type" : "media", | "type" : "media", | ||
- | "timestamp" : "1509629380", | + | "timestamp" : 1509629380, |
"url" : "udp://225.100.100.1:1234", | "url" : "udp://225.100.100.1:1234", | ||
+ | "id" : "233", | ||
+ | "proto" : "jsonapi", | ||
"avg_bitrate" : 1183564, | "avg_bitrate" : 1183564, | ||
"begin" : 1509543180, | "begin" : 1509543180, | ||
- | "discontinuties" : 0, | ||
"end" : 1509543268, | "end" : 1509543268, | ||
- | "id" : "233", | + | "discontinuties" : 0, |
- | "proto" : "jsonapi", | + | |
"video" : { | "video" : { | ||
"frames_decoded" : 2179, | "frames_decoded" : 2179, | ||
Line 32: | Line 33: | ||
{ | { | ||
"type" : "network", | "type" : "network", | ||
- | "timestamp" : "1509629381", | + | "timestamp" : 1509629381, |
"duplex" : "full", | "duplex" : "full", | ||
"gateway" : "192.168.1.1", | "gateway" : "192.168.1.1", | ||
Line 58: | Line 59: | ||
* //type// - string indentifier of metric type. Currently supported: //network//, //media//. | * //type// - string indentifier of metric type. Currently supported: //network//, //media//. | ||
* //timestamp// - UNIX Timestamp. Time when measurement was actually done. | * //timestamp// - UNIX Timestamp. Time when measurement was actually done. | ||
+ | |||
+ | Other fields are metric specific. | ||
+ | |||
+ | ====Metrics=== | ||
+ | ==Media== | ||
+ | This measurement is done each time media is STOPPING playback. So, it collects data of a single playback session. | ||
+ | <code javascript> | ||
+ | { | ||
+ | "type" : "media", | ||
+ | "timestamp" : 1509543268, | ||
+ | "url" : "udp://225.100.100.1:1234", | ||
+ | "avg_bitrate" : 1183564, | ||
+ | "begin" : 1509543180, | ||
+ | "end" : 1509543268, | ||
+ | "discontinuties" : 0, | ||
+ | "id" : "233", | ||
+ | "proto" : "jsonapi", | ||
+ | "video" : { | ||
+ | "frames_decoded" : 2179, | ||
+ | "frames_dropped" : 3, | ||
+ | "frames_failed" : 0 | ||
+ | }, | ||
+ | "audio" : { | ||
+ | "frames_decoded" : 3690, | ||
+ | "frames_dropped" : 0, | ||
+ | "frames_failed" : 0 | ||
+ | }, | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | ^Field^Type^Description| | ||
+ | |//url// |String| URL of played media.| | ||
+ | |//proto//|String| TVIP TV protocol name, which started stream, if known.| | ||
+ | |//id//|String|ID of content inside protocol, if known.| | ||
+ | |//avg_bitrate// |Int| Average bitrate of stream.| | ||
+ | |//begin// |Int|UNIX Timestamp of playback start.| | ||
+ | |//end// |Int|UNIX Timestamp of playback end.| | ||
+ | |//discontinuties// |Int|For MPEGTS streams (and some HLS stream), number of TS discontinuties.| | ||
+ | |//frames_decoded//|Int|Total number of decoded video/audio frames.| | ||
+ | |//frames_dropped//|Int|Total number of dropped video/audio frames.| | ||
+ | |//frames_failed//|Int|Total number of frame decode errors.| | ||
+ | |||
+ | |||
+ | ==Network== | ||
+ | Network measurement is done in periods defined by provisioning. Statistics is sent for each active (running) interface.\\ | ||
+ | Example: | ||
+ | <code javascript> | ||
+ | { | ||
+ | "type" : "network", | ||
+ | "timestamp" : 1509629381, | ||
+ | "name" : "eth0", | ||
+ | "speed" : 100, | ||
+ | "duplex" : "full", | ||
+ | "ip" : "192.168.1.2", | ||
+ | "netmask" : "255.255.255.0", | ||
+ | "gateway" : "192.168.1.1", | ||
+ | "stat" : { | ||
+ | "received_bytes" : 778852400, | ||
+ | "received_discard_packets" : 31, | ||
+ | "received_error_packets" : 0, | ||
+ | "received_multicast_packets" : 114356, | ||
+ | "received_total_packets" : 908433, | ||
+ | "sent_bytes" : 74131849, | ||
+ | "sent_error_packets" : 0, | ||
+ | "sent_total_packets" : 541623 | ||
+ | } | ||
+ | </code> | ||
+ | ^Field^Type^Description| | ||
+ | |//name//|String|Linux network interface name.| | ||
+ | |//speed//|Int|Current link connection speed in megabits.| | ||
+ | |//duplex//|String|Current link duplex(//full/half//).| | ||
+ | |//ip//|String|Interface IPv4 address.| | ||
+ | |//netmask//|String|Interface IPv4 netmask.| | ||
+ | |//gateway//|String|Current active gateway.| | ||
+ | |//received_bytes//|Int|Total number of bytes received over interface.| | ||
+ | |//received_total_packets//|Int|Total number of packets received over interface.| | ||
+ | |//received_multicast_packets//|Int|Total number of multicast packets received over interface.| | ||
+ | |//received_error_packets//|Int|Total number of receive errors on interface.| | ||
+ | |//received_discard_packets//|Int|Total number of discarded input packets.| | ||
+ | |//sent_bytes//|Int|Total number of bytes sent over interface.| | ||
+ | |//sent_total_packets//|Int|Total number of packets sent over interface.| | ||
+ | |//sent_error_packets//|Int|Total number of send errors.| |