diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/monitor-telemetry-influx.md b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/monitor-telemetry-influx.md new file mode 100644 index 00000000000..221109f3352 --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/documentation/devices/monitor-telemetry-influx.md @@ -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 + ! + destination influxdb test1 + url https://influx_test1.localhost + database name test1 + retention policy test1 + vrf test + username test1 password 7 + ! + 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 +``` diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/monitor-telemetry-influx.cfg b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/monitor-telemetry-influx.cfg new file mode 100644 index 00000000000..70eec6d7c4d --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/intended/configs/monitor-telemetry-influx.cfg @@ -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 + ! + 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 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/monitor-telemetry-influx.yml b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/monitor-telemetry-influx.yml new file mode 100644 index 00000000000..61791c051df --- /dev/null +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/host_vars/monitor-telemetry-influx.yml @@ -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: + - 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 diff --git a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini index 2dd5e3541eb..c71b4a67c6b 100644 --- a/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini +++ b/ansible_collections/arista/avd/molecule/eos_cli_config_gen/inventory/hosts.ini @@ -93,6 +93,7 @@ mlag-configuration monitor-layer1 monitor-connectivity monitor-sessions +monitor-telemetry-influx mpls none_configuration ntp diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/monitor-telemetry-influx.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/monitor-telemetry-influx.md new file mode 100644 index 00000000000..674ac4f3628 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/tables/monitor-telemetry-influx.md @@ -0,0 +1,70 @@ + +=== "Table" + + | Variable | Type | Required | Default | Value Restrictions | Description | + | -------- | ---- | -------- | ------- | ------------------ | ----------- | + | [monitor_telemetry_influx](## "monitor_telemetry_influx") | Dictionary | | | | | + | [  vrf](## "monitor_telemetry_influx.vrf") | String | | | | | + | [  destinations](## "monitor_telemetry_influx.destinations") | List, items: Dictionary | | | | Configure telemetry output destinations. | + | [    - name](## "monitor_telemetry_influx.destinations.[].name") | String | Required, Unique | | | InfluxDB connection name. | + | [      database](## "monitor_telemetry_influx.destinations.[].database") | String | | | | Set name of the database. | + | [      data_retention_policy](## "monitor_telemetry_influx.destinations.[].data_retention_policy") | String | | | | | + | [      url](## "monitor_telemetry_influx.destinations.[].url") | String | | | Pattern: (http(s)?|udp|unix)://.+ | It only accepts http(s), udp and unix domain destination URL. | + | [      username](## "monitor_telemetry_influx.destinations.[].username") | String | | | | | + | [      password](## "monitor_telemetry_influx.destinations.[].password") | String | | | | | + | [      password_type](## "monitor_telemetry_influx.destinations.[].password_type") | String | | `7` | Valid Values:
- 0
- 7
- 8a | | + | [  source_group_standard_disabled](## "monitor_telemetry_influx.source_group_standard_disabled") | Boolean | | | | Disable standard set of telemetry. | + | [  source_sockets](## "monitor_telemetry_influx.source_sockets") | List, items: Dictionary | | | | | + | [    - name](## "monitor_telemetry_influx.source_sockets.[].name") | String | Required, Unique | | | Label of the socket connection. | + | [      connection_limit](## "monitor_telemetry_influx.source_sockets.[].connection_limit") | Integer | | | Min: 0
Max: 4294967295 | | + | [      url](## "monitor_telemetry_influx.source_sockets.[].url") | String | | | Pattern: (http(s)?|udp|unix)://.+ | It only accepts http(s), udp and unix domain socket URL. | + | [  tags](## "monitor_telemetry_influx.tags") | List, items: Dictionary | | | | Extra tags added to the telemetry output. | + | [    - name](## "monitor_telemetry_influx.tags.[].name") | String | Required, Unique | | | Key of the global tag pair. | + | [      value](## "monitor_telemetry_influx.tags.[].value") | String | Required | | | Value of the global tag pair. | + +=== "YAML" + + ```yaml + monitor_telemetry_influx: + vrf: + + # Configure telemetry output destinations. + destinations: + + # InfluxDB connection name. + - name: + + # Set name of the database. + database: + data_retention_policy: + + # It only accepts http(s), udp and unix domain destination URL. + url: + username: + password: + password_type: + + # Disable standard set of telemetry. + source_group_standard_disabled: + source_sockets: + + # Label of the socket connection. + - name: + connection_limit: + + # It only accepts http(s), udp and unix domain socket URL. + url: + + # Extra tags added to the telemetry output. + tags: + + # Key of the global tag pair. + - name: + + # Value of the global tag pair. + value: + ``` diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json index b9a74990b08..bc6a1c0fc3e 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json @@ -12219,6 +12219,141 @@ }, "title": "Monitor Sessions" }, + "monitor_telemetry_influx": { + "type": "object", + "properties": { + "vrf": { + "type": "string", + "title": "VRF" + }, + "destinations": { + "type": "array", + "description": "Configure telemetry output destinations.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "InfluxDB connection name.", + "title": "Name" + }, + "database": { + "type": "string", + "description": "Set name of the database.", + "title": "Database" + }, + "data_retention_policy": { + "type": "string", + "title": "Data Retention Policy" + }, + "url": { + "type": "string", + "description": "It only accepts http(s), udp and unix domain destination URL.", + "pattern": "(http(s)?|udp|unix)://.+", + "title": "URL" + }, + "username": { + "type": "string", + "title": "Username" + }, + "password": { + "type": "string", + "title": "Password" + }, + "password_type": { + "type": "string", + "enum": [ + "0", + "7", + "8a" + ], + "default": "7", + "title": "Password Type" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "required": [ + "name" + ] + }, + "title": "Destinations" + }, + "source_group_standard_disabled": { + "type": "boolean", + "description": "Disable standard set of telemetry.", + "title": "Source Group Standard Disabled" + }, + "source_sockets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Label of the socket connection.", + "title": "Name" + }, + "connection_limit": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295, + "title": "Connection Limit" + }, + "url": { + "type": "string", + "description": "It only accepts http(s), udp and unix domain socket URL.", + "pattern": "(http(s)?|udp|unix)://.+", + "title": "URL" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "required": [ + "name" + ] + }, + "title": "Source Sockets" + }, + "tags": { + "type": "array", + "description": "Extra tags added to the telemetry output.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key of the global tag pair.", + "title": "Name" + }, + "value": { + "type": "string", + "description": "Value of the global tag pair.", + "title": "Value" + } + }, + "required": [ + "value", + "name" + ], + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + } + }, + "title": "Tags" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "title": "Monitor Telemetry Influx" + }, "mpls": { "type": "object", "properties": { diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml index 8dd8f5e1049..8f261ec6497 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml @@ -7178,6 +7178,80 @@ keys: description: Size in bytes. convert_types: - str + monitor_telemetry_influx: + type: dict + keys: + vrf: + type: str + destinations: + type: list + primary_key: name + description: Configure telemetry output destinations. + items: + type: dict + keys: + name: + type: str + description: InfluxDB connection name. + database: + type: str + description: Set name of the database. + data_retention_policy: + type: str + url: + type: str + description: It only accepts http(s), udp and unix domain destination + URL. + pattern: (http(s)?|udp|unix)://.+ + username: + type: str + password: + type: str + password_type: + type: str + convert_types: + - int + valid_values: + - '0' + - '7' + - 8a + default: '7' + source_group_standard_disabled: + type: bool + description: Disable standard set of telemetry. + source_sockets: + type: list + primary_key: name + items: + type: dict + keys: + name: + type: str + description: Label of the socket connection. + connection_limit: + type: int + min: 0 + max: 4294967295 + convert_types: + - str + url: + type: str + description: It only accepts http(s), udp and unix domain socket URL. + pattern: (http(s)?|udp|unix)://.+ + tags: + type: list + primary_key: name + description: Extra tags added to the telemetry output. + items: + type: dict + keys: + name: + type: str + description: Key of the global tag pair. + value: + type: str + required: true + description: Value of the global tag pair. mpls: type: dict keys: diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/monitor_telemetry_influx.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/monitor_telemetry_influx.schema.yml new file mode 100644 index 00000000000..c6ec59f739a --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/monitor_telemetry_influx.schema.yml @@ -0,0 +1,78 @@ +# Copyright (c) 2023-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. +# yaml-language-server: $schema=../../../../plugins/plugin_utils/schema/avd_meta_schema.json +# Line above is used by RedHat's YAML Schema vscode extension +# Use Ctrl + Space to get suggestions for every field. Autocomplete will pop up after typing 2 letters. +type: dict +keys: + monitor_telemetry_influx: + type: dict + keys: + vrf: + type: str + destinations: + type: list + primary_key: name + description: Configure telemetry output destinations. + items: + type: dict + keys: + name: + type: str + description: InfluxDB connection name. + database: + type: str + description: Set name of the database. + data_retention_policy: + type: str + url: + type: str + description: It only accepts http(s), udp and unix domain destination URL. + pattern: '(http(s)?|udp|unix)://.+' + username: + type: str + password: + type: str + password_type: + type: str + convert_types: + - int + valid_values: ["0", "7", "8a"] + default: "7" + source_group_standard_disabled: + type: bool + description: Disable standard set of telemetry. + source_sockets: + type: list + primary_key: name + items: + type: dict + keys: + name: + type: str + description: Label of the socket connection. + connection_limit: + type: int + min: 0 + max: 4294967295 + convert_types: + - str + url: + type: str + description: It only accepts http(s), udp and unix domain socket URL. + pattern: '(http(s)?|udp|unix)://.+' + tags: + type: list + primary_key: name + description: Extra tags added to the telemetry output. + items: + type: dict + keys: + name: + type: str + description: Key of the global tag pair. + value: + type: str + required: true + description: Value of the global tag pair. diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/monitor-telemetry-influx.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/monitor-telemetry-influx.j2 new file mode 100644 index 00000000000..8425dad2970 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/documentation/monitor-telemetry-influx.j2 @@ -0,0 +1,52 @@ +{# + Copyright (c) 2023-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. +#} +{# doc - monitor telemetry influx #} +{% if monitor_telemetry_influx is arista.avd.defined %} + +## InfluxDB Telemetry + +### InfluxDB Telemetry Summary +{% if monitor_telemetry_influx.source_group_standard_disabled is arista.avd.defined(true) %} + +Source Group Standard Disabled : {{ monitor_telemetry_influx.source_group_standard_disabled }} +{% endif %} +{% if monitor_telemetry_influx.destinations is arista.avd.defined %} + +#### InfluxDB Telemetry Destinations + +| Destination | Database | URL | VRF | Username | +| ----------- | -------- | --- | --- | -------- | +{% for destination in monitor_telemetry_influx.destinations | arista.avd.natural_sort('name') %} +| {{ destination.name | arista.avd.default('-') }} | {{ destination.database | arista.avd.default('-') }} | {{ destination.url | arista.avd.default('-') }} | {{ monitor_telemetry_influx.vrf | arista.avd.default('-') }} | {{ destination.username | arista.avd.default('-') }} | +{% endfor %} +{% endif %} +{% if monitor_telemetry_influx.source_sockets is arista.avd.defined %} + +#### InfluxDB Telemetry Sources + +| Source Name | URL | Connection Limit | +| ----------- | --- | ---------------- | +{% for source in monitor_telemetry_influx.source_sockets | arista.avd.natural_sort('name') %} +| {{ source.name | arista.avd.default('-') }} | {{ source.url | arista.avd.default('-') }} | {{ source.connection_limit | arista.avd.default('-') }} | +{% endfor %} +{% endif %} +{% if monitor_telemetry_influx.tags is arista.avd.defined %} + +#### InfluxDB Telemetry Tags + +| Tag | Value | +| --- | ----- | +{% for tag in monitor_telemetry_influx.tags %} +| {{ tag.name | arista.avd.default('-') }} | {{ tag.value | arista.avd.default('-') }} | +{% endfor %} +{% endif %} + +### InfluxDB Telemetry Device Configuration + +```eos +{% include 'eos/monitor-telemetry-influx.j2' %} +``` +{% endif %} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 index b77c3612275..cfd0a3fa7fc 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-device-documentation.j2 @@ -117,6 +117,8 @@ {% include 'documentation/traffic-policies.j2' %} {# Quality Of Service #} {% include 'documentation/quality-of-service.j2' %} +{# InfluxDB Telemetry #} +{% include 'documentation/monitor-telemetry-influx.j2' %} {# Priority Flow Control #} {% include 'documentation/priority-flow-control.j2' %} {# STUN #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 index c977c1860fb..8dd5ab5e75b 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos-intended-config.j2 @@ -161,6 +161,8 @@ {% include 'eos/link-tracking-groups.j2' %} {# CVX #} {% include 'eos/cvx.j2' %} +{# influxDB Telemetry #} +{% include 'eos/monitor-telemetry-influx.j2' %} {# IP Security #} {% include 'eos/ip-security.j2' %} {# Port-Channel Interfaces #} diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/monitor-telemetry-influx.j2 b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/monitor-telemetry-influx.j2 new file mode 100644 index 00000000000..74c12a1da4d --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/templates/eos/monitor-telemetry-influx.j2 @@ -0,0 +1,51 @@ +{# + Copyright (c) 2023-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. +#} +{# eos - monitor telemetry influx #} +{% if monitor_telemetry_influx is arista.avd.defined %} +! +monitor telemetry influx +{% for destination in monitor_telemetry_influx.destinations | arista.avd.natural_sort('name') %} + destination influxdb {{ destination.name }} +{% if destination.url is arista.avd.defined %} + url {{ destination.url }} +{% endif %} +{% if destination.database is arista.avd.defined %} + database name {{ destination.database }} +{% endif %} +{% if destination.data_retention_policy is arista.avd.defined %} + retention policy {{ destination.data_retention_policy }} +{% endif %} +{% if monitor_telemetry_influx.vrf is arista.avd.defined %} + vrf {{ monitor_telemetry_influx.vrf }} +{% endif %} +{% if destination.username is arista.avd.defined and destination.password is arista.avd.defined %} + username {{ destination.username }} password {{ destination.password_type | arista.avd.default("7") }} {{ destination.password | arista.avd.hide_passwords(hide_passwords) }} +{% endif %} +{% if not loop.last or monitor_telemetry_influx.source_sockets is arista.avd.defined %} + ! +{% endif %} +{% endfor %} +{% for socket in monitor_telemetry_influx.source_sockets | arista.avd.natural_sort('name') %} + source socket {{ socket.name }} +{% if socket.url is arista.avd.defined %} + url {{ socket.url }} +{% endif %} +{% if socket.connection_limit is arista.avd.defined %} + connection limit {{ socket.connection_limit }} +{% endif %} +{% if not loop.last %} + ! +{% endif %} +{% endfor %} +{% for tag in monitor_telemetry_influx.tags | arista.avd.natural_sort('name') %} +{% if tag.value is arista.avd.defined %} + tag global {{ tag.name }} {{ tag.value }} +{% endif %} +{% endfor %} +{% if monitor_telemetry_influx.source_group_standard_disabled is arista.avd.defined(true) %} + source group standard disabled +{% endif %} +{% endif %} diff --git a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json index 8c859199eb9..b40504a9236 100644 --- a/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json +++ b/ansible_collections/arista/avd/roles/eos_designs/schemas/eos_designs.jsonschema.json @@ -28913,6 +28913,141 @@ }, "title": "Monitor Sessions" }, + "monitor_telemetry_influx": { + "type": "object", + "properties": { + "vrf": { + "type": "string", + "title": "VRF" + }, + "destinations": { + "type": "array", + "description": "Configure telemetry output destinations.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "InfluxDB connection name.", + "title": "Name" + }, + "database": { + "type": "string", + "description": "Set name of the database.", + "title": "Database" + }, + "data_retention_policy": { + "type": "string", + "title": "Data Retention Policy" + }, + "url": { + "type": "string", + "description": "It only accepts http(s), udp and unix domain destination URL.", + "pattern": "(http(s)?|udp|unix)://.+", + "title": "URL" + }, + "username": { + "type": "string", + "title": "Username" + }, + "password": { + "type": "string", + "title": "Password" + }, + "password_type": { + "type": "string", + "enum": [ + "0", + "7", + "8a" + ], + "default": "7", + "title": "Password Type" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "required": [ + "name" + ] + }, + "title": "Destinations" + }, + "source_group_standard_disabled": { + "type": "boolean", + "description": "Disable standard set of telemetry.", + "title": "Source Group Standard Disabled" + }, + "source_sockets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Label of the socket connection.", + "title": "Name" + }, + "connection_limit": { + "type": "integer", + "minimum": 0, + "maximum": 4294967295, + "title": "Connection Limit" + }, + "url": { + "type": "string", + "description": "It only accepts http(s), udp and unix domain socket URL.", + "pattern": "(http(s)?|udp|unix)://.+", + "title": "URL" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "required": [ + "name" + ] + }, + "title": "Source Sockets" + }, + "tags": { + "type": "array", + "description": "Extra tags added to the telemetry output.", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key of the global tag pair.", + "title": "Name" + }, + "value": { + "type": "string", + "description": "Value of the global tag pair.", + "title": "Value" + } + }, + "required": [ + "value", + "name" + ], + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + } + }, + "title": "Tags" + } + }, + "additionalProperties": false, + "patternProperties": { + "^_.+$": {} + }, + "title": "Monitor Telemetry Influx" + }, "mpls": { "type": "object", "properties": {