Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Navigation

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:

  • queue-stats (JSON format)
  • q (CSV or TSV format)

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:

  • traffic-stats (JSON format)
  • t (CSV or TSV format)

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).

Published: 2014-07-23