2020-03-13 07:45:35 +08:00
|
|
|
|
# Arista LANZ Consumer Input Plugin
|
|
|
|
|
|
|
2022-06-08 05:37:08 +08:00
|
|
|
|
This plugin provides a consumer for use with Arista Networks’ Latency Analyzer
|
|
|
|
|
|
(LANZ)
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
|
|
|
|
|
Metrics are read from a stream of data via TCP through port 50001 on the
|
2022-06-08 05:37:08 +08:00
|
|
|
|
switches management IP. The data is in Protobuffers format. For more information
|
|
|
|
|
|
on Arista LANZ
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
2021-11-25 03:18:53 +08:00
|
|
|
|
- <https://www.arista.com/en/um-eos/eos-latency-analyzer-lanz>
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
|
|
|
|
|
This plugin uses Arista's sdk.
|
|
|
|
|
|
|
2021-11-25 03:18:53 +08:00
|
|
|
|
- <https://github.com/aristanetworks/goarista>
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
2023-03-27 20:12:35 +08:00
|
|
|
|
## 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 listens and waits 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
|
|
|
|
|
|
|
2022-10-27 03:58:36 +08:00
|
|
|
|
## Global configuration options <!-- @/docs/includes/plugin_config.md -->
|
|
|
|
|
|
|
|
|
|
|
|
In addition to the plugin-specific configuration settings, plugins support
|
|
|
|
|
|
additional global and plugin configuration settings. These settings are used to
|
|
|
|
|
|
modify metrics, tags, and field or create aliases and configure ordering, etc.
|
|
|
|
|
|
See the [CONFIGURATION.md][CONFIGURATION.md] for more details.
|
|
|
|
|
|
|
2023-01-12 23:55:21 +08:00
|
|
|
|
[CONFIGURATION.md]: ../../../docs/CONFIGURATION.md#plugins
|
2022-10-27 03:58:36 +08:00
|
|
|
|
|
2021-11-25 03:18:53 +08:00
|
|
|
|
## Configuration
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
2022-05-24 21:49:47 +08:00
|
|
|
|
```toml @sample.conf
|
2022-04-08 06:01:21 +08:00
|
|
|
|
# Read metrics off Arista LANZ, via socket
|
2020-03-13 07:45:35 +08:00
|
|
|
|
[[inputs.lanz]]
|
2022-04-08 06:01:21 +08:00
|
|
|
|
## URL to Arista LANZ endpoint
|
2020-03-13 07:45:35 +08:00
|
|
|
|
servers = [
|
|
|
|
|
|
"tcp://switch1.int.example.com:50001",
|
|
|
|
|
|
"tcp://switch2.int.example.com:50001",
|
|
|
|
|
|
]
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2022-06-08 05:37:08 +08:00
|
|
|
|
You will need to configure LANZ and enable streaming LANZ data.
|
|
|
|
|
|
|
|
|
|
|
|
- <https://www.arista.com/en/um-eos/eos-section-44-3-configuring-lanz>
|
|
|
|
|
|
- <https://www.arista.com/en/um-eos/eos-section-44-3-configuring-lanz#ww1149292>
|
|
|
|
|
|
|
2021-11-25 03:18:53 +08:00
|
|
|
|
## Metrics
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
2022-06-08 05:37:08 +08:00
|
|
|
|
For more details on the metrics see
|
|
|
|
|
|
<https://github.com/aristanetworks/goarista/blob/master/lanz/proto/lanz.proto>
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
|
|
|
|
|
- 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)
|
|
|
|
|
|
|
2021-11-25 03:18:53 +08:00
|
|
|
|
- lanz_global_buffer_usage_record
|
2020-03-13 07:45:35 +08:00
|
|
|
|
- tags:
|
|
|
|
|
|
- entry_type
|
|
|
|
|
|
- source
|
|
|
|
|
|
- port
|
|
|
|
|
|
- fields:
|
|
|
|
|
|
- timestamp (integer)
|
|
|
|
|
|
- buffer_size (integer)
|
|
|
|
|
|
- duration (integer)
|
|
|
|
|
|
|
2021-11-25 03:18:53 +08:00
|
|
|
|
## Sample Queries
|
2020-03-13 07:45:35 +08:00
|
|
|
|
|
|
|
|
|
|
Get the max tx_latency for the last hour for all interfaces on all switches.
|
2021-11-25 03:18:53 +08:00
|
|
|
|
|
2020-08-11 03:50:48 +08:00
|
|
|
|
```sql
|
2020-03-13 07:45:35 +08:00
|
|
|
|
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.
|
2021-11-25 03:18:53 +08:00
|
|
|
|
|
2020-08-11 03:50:48 +08:00
|
|
|
|
```sql
|
2020-03-13 07:45:35 +08:00
|
|
|
|
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.
|
2021-11-25 03:18:53 +08:00
|
|
|
|
|
2020-08-11 03:50:48 +08:00
|
|
|
|
```sql
|
2020-03-13 07:45:35 +08:00
|
|
|
|
SELECT max("buffer_size") AS "max_buffer_size" FROM "global_buffer_usage_record" WHERE time > now() - 1h GROUP BY time(10s), "hostname"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2023-02-09 18:04:41 +08:00
|
|
|
|
## Example Output
|
2021-11-25 03:18:53 +08:00
|
|
|
|
|
2023-04-04 19:43:49 +08:00
|
|
|
|
```text
|
2020-03-13 07:45:35 +08:00
|
|
|
|
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
|
|
|
|
|
|
```
|