| 1 | { |
| 2 | "jsonSchema": { |
| 3 | "$schema": "http://json-schema.org/draft-07/schema#", |
| 4 | "title": "Elasticsearch 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": 5 |
| 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 base URL of the Elasticsearch cluster.", |
| 24 | "type": "string", |
| 25 | "default": "http://127.0.0.1:9200", |
| 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": 2 |
| 34 | }, |
| 35 | "functions": { |
| 36 | "title": "Functions", |
| 37 | "description": "Configuration for Netdata functions exposed by this collector.", |
| 38 | "type": "object", |
| 39 | "properties": { |
| 40 | "top_queries": { |
| 41 | "title": "Top Queries", |
| 42 | "description": "Configuration for the top-queries function.", |
| 43 | "type": "object", |
| 44 | "properties": { |
| 45 | "disabled": { |
| 46 | "title": "Disabled", |
| 47 | "description": "Disable the top-queries function.", |
| 48 | "type": "boolean", |
| 49 | "default": false |
| 50 | }, |
| 51 | "timeout": { |
| 52 | "title": "Timeout", |
| 53 | "description": "Query timeout in seconds. Set to 0 to use the collector's timeout.", |
| 54 | "type": "number", |
| 55 | "minimum": 0 |
| 56 | }, |
| 57 | "limit": { |
| 58 | "title": "Limit", |
| 59 | "description": "Maximum number of queries to return. Set to 0 to use the default (500).", |
| 60 | "type": "integer", |
| 61 | "minimum": 0, |
| 62 | "maximum": 5000, |
| 63 | "default": 500 |
| 64 | } |
| 65 | } |
| 66 | } |
| 67 | } |
| 68 | }, |
| 69 | "not_follow_redirects": { |
| 70 | "title": "Not follow redirects", |
| 71 | "description": "If set, the client will not follow HTTP redirects automatically.", |
| 72 | "type": "boolean" |
| 73 | }, |
| 74 | "vnode": { |
| 75 | "title": "Vnode", |
| 76 | "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).", |
| 77 | "type": "string" |
| 78 | }, |
| 79 | "cluster_mode": { |
| 80 | "title": "Cluster mode", |
| 81 | "description": "If set, metrics will be collected for all nodes in the Elasticsearch cluster; otherwise, only for the local node where the collector is running.", |
| 82 | "type": "boolean", |
| 83 | "default": false |
| 84 | }, |
| 85 | "collect_node_stats": { |
| 86 | "title": "Collect node stats", |
| 87 | "description": "Collect metrics about individual [nodes in the cluster](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-nodes-stats.html).", |
| 88 | "type": "boolean", |
| 89 | "default": true |
| 90 | }, |
| 91 | "collect_cluster_health": { |
| 92 | "title": "Collect cluster health", |
| 93 | "description": "Collect metrics about the overall [health of the cluster](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html).", |
| 94 | "type": "boolean", |
| 95 | "default": true |
| 96 | }, |
| 97 | "collect_cluster_stats": { |
| 98 | "title": "Collect cluster stats", |
| 99 | "description": "Collect high-level [cluster statistics](https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-stats.html).", |
| 100 | "type": "boolean", |
| 101 | "default": true |
| 102 | }, |
| 103 | "collect_indices_stats": { |
| 104 | "title": "Collect indices stats", |
| 105 | "description": "Collect metrics about individual [indices in the cluster](https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-indices.html).", |
| 106 | "type": "boolean", |
| 107 | "default": false |
| 108 | }, |
| 109 | "username": { |
| 110 | "title": "Username", |
| 111 | "description": "The username for basic authentication.", |
| 112 | "type": "string", |
| 113 | "sensitive": true |
| 114 | }, |
| 115 | "password": { |
| 116 | "title": "Password", |
| 117 | "description": "The password for basic authentication.", |
| 118 | "type": "string", |
| 119 | "sensitive": true |
| 120 | }, |
| 121 | "bearer_token_file": { |
| 122 | "title": "Bearer Token File", |
| 123 | "description": "Path to a file containing a bearer token for HTTP authentication.", |
| 124 | "type": "string" |
| 125 | }, |
| 126 | "force_http2": { |
| 127 | "title": "Force HTTP2", |
| 128 | "description": "If set, forces the use of HTTP/2 protocol for all requests, even over plain TCP (h2c).", |
| 129 | "type": "boolean" |
| 130 | }, |
| 131 | "proxy_url": { |
| 132 | "title": "Proxy URL", |
| 133 | "description": "The URL of the proxy server.", |
| 134 | "type": "string" |
| 135 | }, |
| 136 | "proxy_username": { |
| 137 | "title": "Proxy username", |
| 138 | "description": "The username for proxy authentication.", |
| 139 | "type": "string", |
| 140 | "sensitive": true |
| 141 | }, |
| 142 | "proxy_password": { |
| 143 | "title": "Proxy password", |
| 144 | "description": "The password for proxy authentication.", |
| 145 | "type": "string", |
| 146 | "sensitive": true |
| 147 | }, |
| 148 | "headers": { |
| 149 | "title": "Headers", |
| 150 | "description": "Additional HTTP headers to include in the request.", |
| 151 | "type": [ |
| 152 | "object", |
| 153 | "null" |
| 154 | ], |
| 155 | "additionalProperties": { |
| 156 | "type": "string" |
| 157 | } |
| 158 | }, |
| 159 | "tls_skip_verify": { |
| 160 | "title": "Skip TLS verification", |
| 161 | "description": "If set, TLS certificate verification will be skipped.", |
| 162 | "type": "boolean" |
| 163 | }, |
| 164 | "tls_ca": { |
| 165 | "title": "TLS CA", |
| 166 | "description": "The path to the CA certificate file for TLS verification.", |
| 167 | "type": "string", |
| 168 | "pattern": "^$|^/" |
| 169 | }, |
| 170 | "tls_cert": { |
| 171 | "title": "TLS certificate", |
| 172 | "description": "The path to the client certificate file for TLS authentication.", |
| 173 | "type": "string", |
| 174 | "pattern": "^$|^/" |
| 175 | }, |
| 176 | "tls_key": { |
| 177 | "title": "TLS key", |
| 178 | "description": "The path to the client key file for TLS authentication.", |
| 179 | "type": "string", |
| 180 | "pattern": "^$|^/" |
| 181 | }, |
| 182 | "body": { |
| 183 | "title": "Body", |
| 184 | "type": "string" |
| 185 | }, |
| 186 | "method": { |
| 187 | "title": "Method", |
| 188 | "type": "string" |
| 189 | } |
| 190 | }, |
| 191 | "required": [ |
| 192 | "url" |
| 193 | ] |
| 194 | }, |
| 195 | "uiSchema": { |
| 196 | "ui:flavour": "tabs", |
| 197 | "ui:options": { |
| 198 | "tabs": [ |
| 199 | { |
| 200 | "title": "Base", |
| 201 | "fields": [ |
| 202 | "update_every", |
| 203 | "autodetection_retry", |
| 204 | "url", |
| 205 | "timeout", |
| 206 | "not_follow_redirects", |
| 207 | "cluster_mode", |
| 208 | "collect_node_stats", |
| 209 | "collect_cluster_health", |
| 210 | "collect_cluster_stats", |
| 211 | "collect_indices_stats", |
| 212 | "vnode" |
| 213 | ] |
| 214 | }, |
| 215 | { |
| 216 | "title": "Auth", |
| 217 | "fields": [ |
| 218 | "username", |
| 219 | "password" |
| 220 | ] |
| 221 | }, |
| 222 | { |
| 223 | "title": "TLS", |
| 224 | "fields": [ |
| 225 | "tls_skip_verify", |
| 226 | "tls_ca", |
| 227 | "tls_cert", |
| 228 | "tls_key" |
| 229 | ] |
| 230 | }, |
| 231 | { |
| 232 | "title": "Proxy", |
| 233 | "fields": [ |
| 234 | "proxy_url", |
| 235 | "proxy_username", |
| 236 | "proxy_password" |
| 237 | ] |
| 238 | }, |
| 239 | { |
| 240 | "title": "Headers", |
| 241 | "fields": [ |
| 242 | "headers" |
| 243 | ] |
| 244 | }, |
| 245 | { |
| 246 | "title": "Functions", |
| 247 | "fields": [ |
| 248 | "functions" |
| 249 | ] |
| 250 | } |
| 251 | ] |
| 252 | }, |
| 253 | "uiOptions": { |
| 254 | "fullPage": true |
| 255 | }, |
| 256 | "body": { |
| 257 | "ui:widget": "hidden" |
| 258 | }, |
| 259 | "method": { |
| 260 | "ui:widget": "hidden" |
| 261 | }, |
| 262 | "bearer_token_file": { |
| 263 | "ui:help": "The token is sent in the Authorization header as `Bearer <token>`. **Takes priority over basic authentication**.", |
| 264 | "ui:widget": "hidden" |
| 265 | }, |
| 266 | "force_http2": { |
| 267 | "ui:widget": "hidden" |
| 268 | }, |
| 269 | "autodetection_retry": { |
| 270 | "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." |
| 271 | }, |
| 272 | "vnode": { |
| 273 | "ui:placeholder": "To use this option, first create a Virtual Node and then reference its name here." |
| 274 | }, |
| 275 | "timeout": { |
| 276 | "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)." |
| 277 | }, |
| 278 | "username": { |
| 279 | "ui:widget": "password" |
| 280 | }, |
| 281 | "proxy_username": { |
| 282 | "ui:widget": "password" |
| 283 | }, |
| 284 | "password": { |
| 285 | "ui:widget": "password" |
| 286 | }, |
| 287 | "proxy_password": { |
| 288 | "ui:widget": "password" |
| 289 | } |
| 290 | } |
| 291 | } |