| 1 | { |
| 2 | "jsonSchema": { |
| 3 | "$schema": "http://json-schema.org/draft-07/schema#", |
| 4 | "title": "OpenVPN collector configuration.", |
| 5 | "type": "object", |
| 6 | "properties": { |
| 7 | "update_every": { |
| 8 | "title": "Update every", |
| 9 | "description": "Data collection interval, measured in seconds.", |
| 10 | "type": "integer", |
| 11 | "minimum": 1, |
| 12 | "default": 1 |
| 13 | }, |
| 14 | "autodetection_retry": { |
| 15 | "title": "Detection retry", |
| 16 | "description": "Recheck interval in seconds. Zero means no recheck will be scheduled.", |
| 17 | "type": "integer", |
| 18 | "minimum": 0, |
| 19 | "default": 60 |
| 20 | }, |
| 21 | "address": { |
| 22 | "title": "Address", |
| 23 | "description": "The IP address and port where the OpenVPN [Management Interface](https://openvpn.net/community-resources/management-interface/) listens for connections.", |
| 24 | "type": "string", |
| 25 | "default": "127.0.0.1:7505" |
| 26 | }, |
| 27 | "timeout": { |
| 28 | "title": "Timeout", |
| 29 | "description": "Timeout for establishing a connection and communication (reading and writing) in seconds.", |
| 30 | "type": "number", |
| 31 | "minimum": 0.5, |
| 32 | "default": 1 |
| 33 | }, |
| 34 | "per_user_stats": { |
| 35 | "title": "User selector", |
| 36 | "description": "Configuration for monitoring specific users. If left empty, no user stats will be collected.", |
| 37 | "type": [ |
| 38 | "object", |
| 39 | "null" |
| 40 | ], |
| 41 | "properties": { |
| 42 | "includes": { |
| 43 | "title": "Include", |
| 44 | "description": "Include users whose usernames match any of the specified inclusion [patterns](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/pkg/matcher#readme).", |
| 45 | "type": [ |
| 46 | "array", |
| 47 | "null" |
| 48 | ], |
| 49 | "items": { |
| 50 | "title": "Username pattern", |
| 51 | "type": "string" |
| 52 | }, |
| 53 | "uniqueItems": true |
| 54 | }, |
| 55 | "excludes": { |
| 56 | "title": "Exclude", |
| 57 | "description": "Exclude users whose usernames match any of the specified exclusion [patterns](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/pkg/matcher#readme).", |
| 58 | "type": [ |
| 59 | "array", |
| 60 | "null" |
| 61 | ], |
| 62 | "items": { |
| 63 | "title": "Username pattern", |
| 64 | "type": "string" |
| 65 | }, |
| 66 | "uniqueItems": true |
| 67 | } |
| 68 | } |
| 69 | }, |
| 70 | "vnode": { |
| 71 | "title": "Vnode", |
| 72 | "description": "Associates this data collection job with a [Virtual Node](https://learn.netdata.cloud/docs/netdata-agent/configuration/organize-systems-metrics-and-alerts#virtual-nodes).", |
| 73 | "type": "string" |
| 74 | } |
| 75 | }, |
| 76 | "required": [ |
| 77 | "address" |
| 78 | ] |
| 79 | }, |
| 80 | "uiSchema": { |
| 81 | "uiOptions": { |
| 82 | "fullPage": true |
| 83 | }, |
| 84 | "vnode": { |
| 85 | "ui:placeholder": "To use this option, first create a Virtual Node and then reference its name here." |
| 86 | }, |
| 87 | "autodetection_retry": { |
| 88 | "ui:help": "This option determines how frequently (in seconds) Netdata will retry data collection jobs that failed initially, with the value of 60 meaning it retries to start data collection jobs every 60 seconds, while setting it to 0 disables this retry mechanism entirely." |
| 89 | }, |
| 90 | "timeout": { |
| 91 | "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)." |
| 92 | }, |
| 93 | "per_user_stats": { |
| 94 | "ui:help": "The logic for inclusion and exclusion is as follows: `(include1 OR include2) AND !(exclude1 OR exclude2)`." |
| 95 | }, |
| 96 | "ui:flavour": "tabs", |
| 97 | "ui:options": { |
| 98 | "tabs": [ |
| 99 | { |
| 100 | "title": "Base", |
| 101 | "fields": [ |
| 102 | "update_every", |
| 103 | "autodetection_retry", |
| 104 | "address", |
| 105 | "timeout", |
| 106 | "vnode" |
| 107 | ] |
| 108 | }, |
| 109 | { |
| 110 | "title": "User stats", |
| 111 | "fields": [ |
| 112 | "per_user_stats" |
| 113 | ] |
| 114 | } |
| 115 | ] |
| 116 | } |
| 117 | } |
| 118 | } |