Back to Telegraf

Arista LANZ Consumer Input Plugin

plugins/inputs/lanz/README.md

1.38.33.9 KB
Original Source

Arista LANZ Consumer Input Plugin

This service plugin consumes messages from the Arista Networks’ Latency Analyzer (LANZ) by receiving the datastream on TCP (usually through port 50001) on the switch's management IP.

[!NOTE] You will need to configure LANZ and enable streaming LANZ data, see the documentation for more details.

⭐ Telegraf v1.14.0 🏷️ network 💻 all

Service Input <!-- @/docs/includes/service_input.md -->

This plugin is a service input. Normal plugins gather metrics determined by the interval setting. Service plugins start a service to listen and wait for metrics or events to occur. Service plugins have two key differences from normal plugins:

  1. The global or plugin specific interval setting may not apply
  2. The CLI options of --test, --test-wait, and --once may not produce output for this plugin

Global configuration options <!-- @/docs/includes/plugin_config.md -->

Plugins support additional global and plugin configuration settings for tasks such as modifying metrics, tags, and fields, creating aliases, and configuring plugin ordering. See CONFIGURATION.md for more details.

Configuration

toml
# Read metrics off Arista LANZ, via socket
[[inputs.lanz]]
  ## URL to Arista LANZ endpoint
  servers = [
    "tcp://switch1.int.example.com:50001",
    "tcp://switch2.int.example.com:50001",
  ]

Metrics

For more details on the metrics see the protocol buffer definition.

  • lanz_congestion_record:

    • tags:
      • intf_name
      • switch_id
      • port_id
      • entry_type
      • traffic_class
      • fabric_peer_intf_name
      • source
      • port
    • fields:
      • timestamp (integer)
      • queue_size (integer)
      • time_of_max_qlen (integer)
      • tx_latency (integer)
      • q_drop_count (integer)
  • lanz_global_buffer_usage_record

    • tags:
      • entry_type
      • source
      • port
    • fields:
      • timestamp (integer)
      • buffer_size (integer)
      • duration (integer)

Sample Queries

Get the max tx_latency for the last hour for all interfaces on all switches.

sql
SELECT max("tx_latency") AS "max_tx_latency" FROM "congestion_record" WHERE time > now() - 1h GROUP BY time(10s), "hostname", "intf_name"

Get the max tx_latency for the last hour for all interfaces on all switches.

sql
SELECT max("queue_size") AS "max_queue_size" FROM "congestion_record" WHERE time > now() - 1h GROUP BY time(10s), "hostname", "intf_name"

Get the max buffer_size for over the last hour for all switches.

sql
SELECT max("buffer_size") AS "max_buffer_size" FROM "global_buffer_usage_record" WHERE time > now() - 1h GROUP BY time(10s), "hostname"

Example Output

text
lanz_global_buffer_usage_record,entry_type=2,host=telegraf.int.example.com,port=50001,source=switch01.int.example.com timestamp=158334105824919i,buffer_size=505i,duration=0i 1583341058300643815
lanz_congestion_record,entry_type=2,host=telegraf.int.example.com,intf_name=Ethernet36,port=50001,port_id=61,source=switch01.int.example.com,switch_id=0,traffic_class=1 time_of_max_qlen=0i,tx_latency=564480i,q_drop_count=0i,timestamp=158334105824919i,queue_size=225i 1583341058300636045
lanz_global_buffer_usage_record,entry_type=2,host=telegraf.int.example.com,port=50001,source=switch01.int.example.com timestamp=158334105824919i,buffer_size=589i,duration=0i 1583341058300457464
lanz_congestion_record,entry_type=1,host=telegraf.int.example.com,intf_name=Ethernet36,port=50001,port_id=61,source=switch01.int.example.com,switch_id=0,traffic_class=1 q_drop_count=0i,timestamp=158334105824919i,queue_size=232i,time_of_max_qlen=0i,tx_latency=584640i 1583341058300450302