| 1 | { |
| 2 | "jsonSchema": { |
| 3 | "$schema": "http://json-schema.org/draft-07/schema#", |
| 4 | "title": "PowerDNS 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 | "url": { |
| 22 | "title": "URL", |
| 23 | "description": "The URL of the PowerDNS [built-in webserver](https://doc.powerdns.com/authoritative/http-api/index.html#webserver).", |
| 24 | "type": "string", |
| 25 | "default": "http://127.0.0.1:8081", |
| 26 | "format": "uri" |
| 27 | }, |
| 28 | "timeout": { |
| 29 | "title": "Timeout", |
| 30 | "description": "The timeout in seconds for the HTTP request.", |
| 31 | "type": "number", |
| 32 | "minimum": 0.5, |
| 33 | "default": 1 |
| 34 | }, |
| 35 | "not_follow_redirects": { |
| 36 | "title": "Not follow redirects", |
| 37 | "description": "If set, the client will not follow HTTP redirects automatically.", |
| 38 | "type": "boolean" |
| 39 | }, |
| 40 | "vnode": { |
| 41 | "title": "Vnode", |
| 42 | "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).", |
| 43 | "type": "string" |
| 44 | }, |
| 45 | "username": { |
| 46 | "title": "Username", |
| 47 | "description": "The username for basic authentication.", |
| 48 | "type": "string", |
| 49 | "sensitive": true |
| 50 | }, |
| 51 | "password": { |
| 52 | "title": "Password", |
| 53 | "description": "The password for basic authentication.", |
| 54 | "type": "string", |
| 55 | "sensitive": true |
| 56 | }, |
| 57 | "bearer_token_file": { |
| 58 | "title": "Bearer Token File", |
| 59 | "description": "Path to a file containing a bearer token for HTTP authentication.", |
| 60 | "type": "string" |
| 61 | }, |
| 62 | "force_http2": { |
| 63 | "title": "Force HTTP2", |
| 64 | "description": "If set, forces the use of HTTP/2 protocol for all requests, even over plain TCP (h2c).", |
| 65 | "type": "boolean" |
| 66 | }, |
| 67 | "proxy_url": { |
| 68 | "title": "Proxy URL", |
| 69 | "description": "The URL of the proxy server.", |
| 70 | "type": "string" |
| 71 | }, |
| 72 | "proxy_username": { |
| 73 | "title": "Proxy username", |
| 74 | "description": "The username for proxy authentication.", |
| 75 | "type": "string", |
| 76 | "sensitive": true |
| 77 | }, |
| 78 | "proxy_password": { |
| 79 | "title": "Proxy password", |
| 80 | "description": "The password for proxy authentication.", |
| 81 | "type": "string", |
| 82 | "sensitive": true |
| 83 | }, |
| 84 | "headers": { |
| 85 | "title": "Headers", |
| 86 | "description": "Additional HTTP headers to include in the request.", |
| 87 | "type": [ |
| 88 | "object", |
| 89 | "null" |
| 90 | ], |
| 91 | "additionalProperties": { |
| 92 | "type": "string" |
| 93 | } |
| 94 | }, |
| 95 | "tls_skip_verify": { |
| 96 | "title": "Skip TLS verification", |
| 97 | "description": "If set, TLS certificate verification will be skipped.", |
| 98 | "type": "boolean" |
| 99 | }, |
| 100 | "tls_ca": { |
| 101 | "title": "TLS CA", |
| 102 | "description": "The path to the CA certificate file for TLS verification.", |
| 103 | "type": "string", |
| 104 | "pattern": "^$|^/" |
| 105 | }, |
| 106 | "tls_cert": { |
| 107 | "title": "TLS certificate", |
| 108 | "description": "The path to the client certificate file for TLS authentication.", |
| 109 | "type": "string", |
| 110 | "pattern": "^$|^/" |
| 111 | }, |
| 112 | "tls_key": { |
| 113 | "title": "TLS key", |
| 114 | "description": "The path to the client key file for TLS authentication.", |
| 115 | "type": "string", |
| 116 | "pattern": "^$|^/" |
| 117 | }, |
| 118 | "body": { |
| 119 | "title": "Body", |
| 120 | "type": "string" |
| 121 | }, |
| 122 | "method": { |
| 123 | "title": "Method", |
| 124 | "type": "string" |
| 125 | } |
| 126 | }, |
| 127 | "required": [ |
| 128 | "url" |
| 129 | ] |
| 130 | }, |
| 131 | "uiSchema": { |
| 132 | "ui:flavour": "tabs", |
| 133 | "ui:options": { |
| 134 | "tabs": [ |
| 135 | { |
| 136 | "title": "Base", |
| 137 | "fields": [ |
| 138 | "update_every", |
| 139 | "autodetection_retry", |
| 140 | "url", |
| 141 | "timeout", |
| 142 | "not_follow_redirects", |
| 143 | "vnode" |
| 144 | ] |
| 145 | }, |
| 146 | { |
| 147 | "title": "Auth", |
| 148 | "fields": [ |
| 149 | "username", |
| 150 | "password" |
| 151 | ] |
| 152 | }, |
| 153 | { |
| 154 | "title": "TLS", |
| 155 | "fields": [ |
| 156 | "tls_skip_verify", |
| 157 | "tls_ca", |
| 158 | "tls_cert", |
| 159 | "tls_key" |
| 160 | ] |
| 161 | }, |
| 162 | { |
| 163 | "title": "Proxy", |
| 164 | "fields": [ |
| 165 | "proxy_url", |
| 166 | "proxy_username", |
| 167 | "proxy_password" |
| 168 | ] |
| 169 | }, |
| 170 | { |
| 171 | "title": "Headers", |
| 172 | "fields": [ |
| 173 | "headers" |
| 174 | ] |
| 175 | } |
| 176 | ] |
| 177 | }, |
| 178 | "uiOptions": { |
| 179 | "fullPage": true |
| 180 | }, |
| 181 | "body": { |
| 182 | "ui:widget": "hidden" |
| 183 | }, |
| 184 | "method": { |
| 185 | "ui:widget": "hidden" |
| 186 | }, |
| 187 | "bearer_token_file": { |
| 188 | "ui:help": "The token is sent in the Authorization header as `Bearer <token>`. **Takes priority over basic authentication**.", |
| 189 | "ui:widget": "hidden" |
| 190 | }, |
| 191 | "force_http2": { |
| 192 | "ui:widget": "hidden" |
| 193 | }, |
| 194 | "autodetection_retry": { |
| 195 | "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." |
| 196 | }, |
| 197 | "vnode": { |
| 198 | "ui:placeholder": "To use this option, first create a Virtual Node and then reference its name here." |
| 199 | }, |
| 200 | "timeout": { |
| 201 | "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)." |
| 202 | }, |
| 203 | "username": { |
| 204 | "ui:widget": "password" |
| 205 | }, |
| 206 | "proxy_username": { |
| 207 | "ui:widget": "password" |
| 208 | }, |
| 209 | "password": { |
| 210 | "ui:widget": "password" |
| 211 | }, |
| 212 | "proxy_password": { |
| 213 | "ui:widget": "password" |
| 214 | } |
| 215 | } |
| 216 | } |