Supported Platforms
Related Documentation
- QFX Series standalone switches
- Network Analytics Overview
- Prototype File for the Google Protocol Buffer Stream Format
- address (Analytics Collector)
- collector (Analytics)
- show analytics collector
Understanding Enhanced Network Analytics Streaming Data
Network analytics monitoring data can be streamed to remote servers called collectors. You can configure one or more collectors to receive streamed data containing queue and traffic statistics. This topic describes the streamed data output.
![]() | Note: This topic applies to Junos OS Release 13.2X51-D15 or later. |
Starting in Junos OS Release 13.2X51-D15, network analytics supports the following streaming data formats and output:
Google Protocol Buffer (GPB)
Support for the Google Protocol Buffer (GPB) streaming format has been added in Junos OS Release 13.2X51-D15. This streaming format provides:
- Support for nine types of messages, based on resource type (system-wide or interface-specific).
- Sends messages in a hierarchical format.
- You can generate other stream format messages (JSON, CSV, TSV) from GPB formatted messages.
- Includes a 8-byte message header. See Table 1 for more information.
Table 1 describes the GPB stream format message header.
Table 1: GPB Stream Format Message Header Information
Byte Position | Field |
---|---|
0 to 3 | Length of message |
4 | Message version |
5 to 7 | Reserved for future use |
The following GPB prototype file (analytics.proto
) provides details about the streamed data:
package analytics; // Traffic statistics related info message TrafficStatus { optional uint32 status = 1; optional uint32 poll_interval = 2; } // Queue statistics related info message QueueStatus { optional uint32 status = 1; optional uint32 poll_interval = 2; optional uint64 lt_high = 3; optional uint64 lt_low = 4; optional uint64 dt_high = 5; optional uint64 dt_low = 6; } message LinkStatus { optional uint64 speed = 1; optional uint32 duplex = 2; optional uint32 mtu = 3; optional bool state = 4; optional bool auto_negotiation= 5; } message InterfaceInfo { optional uint32 snmp_index = 1; optional uint32 index = 2; optional uint32 slot = 3; optional uint32 port = 4; optional uint32 media_type = 5; optional uint32 capability = 6; optional uint32 porttype = 7; } message InterfaceStatus { optional LinkStatus link = 1; optional QueueStatus queue_status = 2; optional TrafficStatus traffic_status = 3; } message QueueStats { optional uint64 timestamp = 1; optional uint64 queue_depth = 2; optional uint64 latency = 3; } message TrafficStats { optional uint64 timestamp = 1; optional uint64 rxpkt = 2; optional uint64 rxucpkt = 3; optional uint64 rxmcpkt = 4; optional uint64 rxbcpkt = 5; optional uint64 rxpps = 6; optional uint64 rxbyte = 7; optional uint64 rxbps = 8; optional uint64 rxcrcerr = 9; optional uint64 rxdroppkt = 10; optional uint64 txpkt = 11; optional uint64 txucpkt = 12; optional uint64 txmcpkt = 13; optional uint64 txbcpkt = 14; optional uint64 txpps = 15; optional uint64 txbyte = 16; optional uint64 txbps = 17; optional uint64 txcrcerr = 18; optional uint64 txdroppkt = 19; } message InterfaceStats { optional TrafficStats traffic_stats = 1; optional QueueStats queue_stats = 2; } //Interface message message Interface { required string name = 1; optional bool deleted = 2; optional InterfaceInfo information = 3; optional InterfaceStats stats = 4; optional InterfaceStatus status = 5; } message SystemInfo { optional uint64 boot_time = 1; optional string model_info = 2; optional string serial_no = 3; optional uint32 max_ports = 4; optional string collector = 5; repeated string interface_list = 6; } message SystemStatus { optional QueueStatus queue_status = 1; optional TrafficStatus traffic_status = 2; } //System message message System { required string name = 1; optional bool deleted = 2; optional SystemInfo information = 3; optional SystemStatus status = 4; } message AnRecord { optional uint64 timestamp = 1; optional System system = 2; repeated Interface interface = 3; }
JavaScript Object Notation (JSON)
The JavaScript Object Notation (JSON) streaming format supports the following data:
- Queue statistics data. For example:
{"record-type":"queue-stats","time":1383453988263,"router-id":"qfx5100-switch", "port":"xe-0/0/18","latency":0,"queue-depth":208}
See Table 2 for more information about queue statistics output fields.
- Traffic statistics. For example:
{"record-type":"traffic-stats","time":1383453986763,"router-id":"qfx5100-switch", "port":"xe-0/0/16","rxpkt":26524223621,"rxpps":8399588,"rxbyte":3395100629632, "rxbps":423997832,"rxdrop":0,"rxerr":0,"txpkt":795746503,"txpps":0,"txbyte":101855533467, "txbps":0,"txdrop":0,"txerr":0}
See Table 3 for more information about traffic statistics output fields.
Comma-separated Values (CSV)
The Comma-separated Values (CSV) streaming format supports the following data:
- Queue statistics. For example:
q,1383454067604,qfx5100-switch,xe-0/0/18,0,208
See Table 2 for more information about queue statistics output fields.
- Traffic statistics. For example:
t,1383454072924,qfx5100-switch,xe-0/0/19,1274299748,82950,163110341556,85603312,0,0, 27254178291,8300088,3488534810679,600002408,27268587050,3490379142400
See Table 3 for more information about traffic statistics output fields.
Tab-separated Values (TSV)
The Tab-separated Values (TSV) streaming format supports the following data:
- Queue statistics. For example:
q 585870192561703872 qfx5100-switch xe-0/0/18 (null) 208 2
See Table 2 for more information about queue statistics output fields.
- Traffic statistics. For example:
t 1383454139025 qfx5100-switch xe-0/0/19 1279874033 82022 163823850036 84801488 0 0 27811618258 8199630 3559887126455 919998736 27827356915 3561901685120
See Table 3 for more information about traffic statistics output fields.
Queue Statistics Output for JSON, CSV, and TSV
Table 2 describes the output fields for streamed queue statistics data in the order they appear.
Table 2: Streamed Queue Statistics Data Output Fields
Field | Description |
---|---|
record-type | Type of statistics. Displayed as:
|
time | Time (in Unix epoch format) at which the statistics were captured. |
router-id | ID of the network analytics host device. |
port | Name of the physical port configured for network analytics. |
latency | Traffic queue latency in milliseconds. |
queue depth | Depth of the traffic queue in bytes. |
Traffic Statistics Output for JSON, CSV, and TSV
Table 3 describes the output fields for streamed traffic statistics data in the order they appear.
Table 3: Streamed Traffic Statistics Data Output Fields
Field | Description |
---|---|
record-type | Type of statistics. Displayed as:
|
time | Time (in Unix epoch format) at which the statistics were captured. |
router-id | ID of the network analytics host device. |
port | Name of the physical port configured for network analytics. |
rxpkt | Total packets received. |
rxpps | Total packets received per second. |
rxbyte | Total bytes received. |
rxbps | Total bytes received per second. |
rxdrop | Total incoming packets dropped. |
rxerr | Total packets with errors. |
txpkt | Total packets transmitted. |
txpps | Total packets transmitted per second. |
txbyte | Total bytes transmitted. |
txbps | Total bytes transmitted per second. |
txdrop | Total transmitted bytes dropped. |
txerr | Total transmitted packets with errors (dropped). |
Related Documentation
- QFX Series standalone switches
- Network Analytics Overview
- Prototype File for the Google Protocol Buffer Stream Format
- address (Analytics Collector)
- collector (Analytics)
- show analytics collector
Published: 2014-07-23
Supported Platforms
Related Documentation
- QFX Series standalone switches
- Network Analytics Overview
- Prototype File for the Google Protocol Buffer Stream Format
- address (Analytics Collector)
- collector (Analytics)
- show analytics collector