forked from aristanetworks/avd
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feat(eos_cli_config_gen): Add InfluxDB support (aristanetworks#3705)
- Loading branch information
1 parent
89edd1c
commit b8e7925
Showing
13 changed files
with
765 additions
and
0 deletions.
There are no files selected for viewing
95 changes: 95 additions & 0 deletions
95
...d/molecule/eos_cli_config_gen/documentation/devices/monitor-telemetry-influx.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
# monitor-telemetry-influx | ||
|
||
## Table of Contents | ||
|
||
- [Management](#management) | ||
- [Management Interfaces](#management-interfaces) | ||
- [InfluxDB Telemetry](#influxdb-telemetry) | ||
- [InfluxDB Telemetry Summary](#influxdb-telemetry-summary) | ||
- [InfluxDB Telemetry Device Configuration](#influxdb-telemetry-device-configuration) | ||
|
||
## Management | ||
|
||
### Management Interfaces | ||
|
||
#### Management Interfaces Summary | ||
|
||
##### IPv4 | ||
|
||
| Management Interface | Description | Type | VRF | IP Address | Gateway | | ||
| -------------------- | ----------- | ---- | --- | ---------- | ------- | | ||
| Management1 | oob_management | oob | MGMT | 10.73.255.122/24 | 10.73.255.2 | | ||
|
||
##### IPv6 | ||
|
||
| Management Interface | Description | Type | VRF | IPv6 Address | IPv6 Gateway | | ||
| -------------------- | ----------- | ---- | --- | ------------ | ------------ | | ||
| Management1 | oob_management | oob | MGMT | - | - | | ||
|
||
#### Management Interfaces Device Configuration | ||
|
||
```eos | ||
! | ||
interface Management1 | ||
description oob_management | ||
vrf MGMT | ||
ip address 10.73.255.122/24 | ||
``` | ||
|
||
## InfluxDB Telemetry | ||
|
||
### InfluxDB Telemetry Summary | ||
|
||
Source Group Standard Disabled : True | ||
|
||
#### InfluxDB Telemetry Destinations | ||
|
||
| Destination | Database | URL | VRF | Username | | ||
| ----------- | -------- | --- | --- | -------- | | ||
| test | test | https://influx_test.localhost | test | test | | ||
| test1 | test1 | https://influx_test1.localhost | test | test1 | | ||
|
||
#### InfluxDB Telemetry Sources | ||
|
||
| Source Name | URL | Connection Limit | | ||
| ----------- | --- | ---------------- | | ||
| socket1 | unix:///var/run/example2.sock | 100 | | ||
| socket2 | unix:///var/run/example3.sock | 22222 | | ||
|
||
#### InfluxDB Telemetry Tags | ||
|
||
| Tag | Value | | ||
| --- | ----- | | ||
| tag1 | value1 | | ||
| tag2 | value2 | | ||
|
||
### InfluxDB Telemetry Device Configuration | ||
|
||
```eos | ||
! | ||
monitor telemetry influx | ||
destination influxdb test | ||
url https://influx_test.localhost | ||
database name test | ||
retention policy test | ||
vrf test | ||
username test password 7 <removed> | ||
! | ||
destination influxdb test1 | ||
url https://influx_test1.localhost | ||
database name test1 | ||
retention policy test1 | ||
vrf test | ||
username test1 password 7 <removed> | ||
! | ||
source socket socket1 | ||
url unix:///var/run/example2.sock | ||
connection limit 100 | ||
! | ||
source socket socket2 | ||
url unix:///var/run/example3.sock | ||
connection limit 22222 | ||
tag global tag1 value1 | ||
tag global tag2 value2 | ||
source group standard disabled | ||
``` |
41 changes: 41 additions & 0 deletions
41
...ions/arista/avd/molecule/eos_cli_config_gen/intended/configs/monitor-telemetry-influx.cfg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
!RANCID-CONTENT-TYPE: arista | ||
! | ||
transceiver qsfp default-mode 4x10G | ||
! | ||
hostname monitor-telemetry-influx | ||
! | ||
no enable password | ||
no aaa root | ||
! | ||
monitor telemetry influx | ||
destination influxdb test | ||
url https://influx_test.localhost | ||
database name test | ||
retention policy test | ||
vrf test | ||
username test password 7 <password> | ||
! | ||
destination influxdb test1 | ||
url https://influx_test1.localhost | ||
database name test1 | ||
retention policy test1 | ||
vrf test | ||
username test1 password 7 131112011F5D | ||
! | ||
source socket socket1 | ||
url unix:///var/run/example2.sock | ||
connection limit 100 | ||
! | ||
source socket socket2 | ||
url unix:///var/run/example3.sock | ||
connection limit 22222 | ||
tag global tag1 value1 | ||
tag global tag2 value2 | ||
source group standard disabled | ||
! | ||
interface Management1 | ||
description oob_management | ||
vrf MGMT | ||
ip address 10.73.255.122/24 | ||
! | ||
end |
29 changes: 29 additions & 0 deletions
29
...s/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/monitor-telemetry-influx.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
monitor_telemetry_influx: | ||
vrf: test | ||
destinations: | ||
- name: test | ||
database: test | ||
data_retention_policy: test | ||
url: https://influx_test.localhost | ||
username: test | ||
password: <password> | ||
- name: test1 | ||
database: test1 | ||
data_retention_policy: test1 | ||
url: https://influx_test1.localhost | ||
username: test1 | ||
password: 131112011F5D | ||
password_type: "7" | ||
source_group_standard_disabled: true | ||
source_sockets: | ||
- name: socket1 | ||
connection_limit: 100 | ||
url: unix:///var/run/example2.sock | ||
- name: socket2 | ||
connection_limit: 22222 | ||
url: unix:///var/run/example3.sock | ||
tags: | ||
- name: tag1 | ||
value: value1 | ||
- name: tag2 | ||
value: value2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
...ons/arista/avd/roles/eos_cli_config_gen/docs/tables/monitor-telemetry-influx.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
<!-- | ||
~ Copyright (c) 2024 Arista Networks, Inc. | ||
~ Use of this source code is governed by the Apache License 2.0 | ||
~ that can be found in the LICENSE file. | ||
--> | ||
=== "Table" | ||
|
||
| Variable | Type | Required | Default | Value Restrictions | Description | | ||
| -------- | ---- | -------- | ------- | ------------------ | ----------- | | ||
| [<samp>monitor_telemetry_influx</samp>](## "monitor_telemetry_influx") | Dictionary | | | | | | ||
| [<samp> vrf</samp>](## "monitor_telemetry_influx.vrf") | String | | | | | | ||
| [<samp> destinations</samp>](## "monitor_telemetry_influx.destinations") | List, items: Dictionary | | | | Configure telemetry output destinations. | | ||
| [<samp> - name</samp>](## "monitor_telemetry_influx.destinations.[].name") | String | Required, Unique | | | InfluxDB connection name. | | ||
| [<samp> database</samp>](## "monitor_telemetry_influx.destinations.[].database") | String | | | | Set name of the database. | | ||
| [<samp> data_retention_policy</samp>](## "monitor_telemetry_influx.destinations.[].data_retention_policy") | String | | | | | | ||
| [<samp> url</samp>](## "monitor_telemetry_influx.destinations.[].url") | String | | | Pattern: (http(s)?|udp|unix)://.+ | It only accepts http(s), udp and unix domain destination URL. | | ||
| [<samp> username</samp>](## "monitor_telemetry_influx.destinations.[].username") | String | | | | | | ||
| [<samp> password</samp>](## "monitor_telemetry_influx.destinations.[].password") | String | | | | | | ||
| [<samp> password_type</samp>](## "monitor_telemetry_influx.destinations.[].password_type") | String | | `7` | Valid Values:<br>- <code>0</code><br>- <code>7</code><br>- <code>8a</code> | | | ||
| [<samp> source_group_standard_disabled</samp>](## "monitor_telemetry_influx.source_group_standard_disabled") | Boolean | | | | Disable standard set of telemetry. | | ||
| [<samp> source_sockets</samp>](## "monitor_telemetry_influx.source_sockets") | List, items: Dictionary | | | | | | ||
| [<samp> - name</samp>](## "monitor_telemetry_influx.source_sockets.[].name") | String | Required, Unique | | | Label of the socket connection. | | ||
| [<samp> connection_limit</samp>](## "monitor_telemetry_influx.source_sockets.[].connection_limit") | Integer | | | Min: 0<br>Max: 4294967295 | | | ||
| [<samp> url</samp>](## "monitor_telemetry_influx.source_sockets.[].url") | String | | | Pattern: (http(s)?|udp|unix)://.+ | It only accepts http(s), udp and unix domain socket URL. | | ||
| [<samp> tags</samp>](## "monitor_telemetry_influx.tags") | List, items: Dictionary | | | | Extra tags added to the telemetry output. | | ||
| [<samp> - name</samp>](## "monitor_telemetry_influx.tags.[].name") | String | Required, Unique | | | Key of the global tag pair. | | ||
| [<samp> value</samp>](## "monitor_telemetry_influx.tags.[].value") | String | Required | | | Value of the global tag pair. | | ||
|
||
=== "YAML" | ||
|
||
```yaml | ||
monitor_telemetry_influx: | ||
vrf: <str> | ||
|
||
# Configure telemetry output destinations. | ||
destinations: | ||
|
||
# InfluxDB connection name. | ||
- name: <str; required; unique> | ||
|
||
# Set name of the database. | ||
database: <str> | ||
data_retention_policy: <str> | ||
|
||
# It only accepts http(s), udp and unix domain destination URL. | ||
url: <str> | ||
username: <str> | ||
password: <str> | ||
password_type: <str; "0" | "7" | "8a"; default="7"> | ||
|
||
# Disable standard set of telemetry. | ||
source_group_standard_disabled: <bool> | ||
source_sockets: | ||
|
||
# Label of the socket connection. | ||
- name: <str; required; unique> | ||
connection_limit: <int; 0-4294967295> | ||
|
||
# It only accepts http(s), udp and unix domain socket URL. | ||
url: <str> | ||
|
||
# Extra tags added to the telemetry output. | ||
tags: | ||
|
||
# Key of the global tag pair. | ||
- name: <str; required; unique> | ||
|
||
# Value of the global tag pair. | ||
value: <str; required> | ||
``` |
135 changes: 135 additions & 0 deletions
135
...ollections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.