master
json 340 lines 9.96 KB
Raw
1 {
2 "jsonSchema": {
3 "$schema": "http://json-schema.org/draft-07/schema#",
4 "title": "Prometheus 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": 10
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 Prometheus metrics endpoint.",
24 "type": "string",
25 "format": "uri"
26 },
27 "timeout": {
28 "title": "Timeout",
29 "description": "The timeout in seconds for the HTTP request.",
30 "type": "number",
31 "minimum": 0.5,
32 "default": 10
33 },
34 "not_follow_redirects": {
35 "title": "Not follow redirects",
36 "description": "If set, the client will not follow HTTP redirects automatically.",
37 "type": "boolean"
38 },
39 "expected_prefix": {
40 "title": "Expected prefix",
41 "description": "If an endpoint does not return at least one metric with the specified prefix, the data is not processed.",
42 "type": "string"
43 },
44 "label_prefix": {
45 "title": "Label prefix",
46 "description": "An optional prefix that will be added to all labels of all charts. If set, the label names will be automatically formatted as `prefix_name` (the prefix followed by an underscore and the original name).",
47 "type": "string"
48 },
49 "app": {
50 "title": "Application",
51 "description": "If set, this value will be used in the chart context as 'prometheus.{app}.{metric_name}'.",
52 "type": "string"
53 },
54 "vnode": {
55 "title": "Vnode",
56 "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).",
57 "type": "string"
58 },
59 "selector": {
60 "title": "Selectors",
61 "description": "Configuration for selecting and filtering a set of time series using Prometheus selectors. If left empty, no filtering is applied.",
62 "type": [
63 "object",
64 "null"
65 ],
66 "properties": {
67 "allow": {
68 "title": "Allow",
69 "description": "Allow time series that match any of the specified [selectors](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/pkg/prometheus/selector#readme).",
70 "type": [
71 "array",
72 "null"
73 ],
74 "items": {
75 "title": "Selector",
76 "type": "string"
77 },
78 "uniqueItems": true
79 },
80 "deny": {
81 "title": "Deny",
82 "description": "Deny time series that match any of the specified [selectors](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/pkg/prometheus/selector#readme).",
83 "type": [
84 "array",
85 "null"
86 ],
87 "items": {
88 "title": "Selector",
89 "type": "string"
90 },
91 "uniqueItems": true
92 }
93 }
94 },
95 "max_time_series": {
96 "title": "Time series limit",
97 "description": "If an endpoint returns more time series than this limit, the data is not processed. Set to 0 for no limit.",
98 "type": "integer",
99 "minimum": 0,
100 "default": 2000
101 },
102 "max_time_series_per_metric": {
103 "title": "Time series per metric limit",
104 "description": "Metrics with more time series than this limit are skipped. Set to 0 for no limit.",
105 "type": "integer",
106 "minimum": 0,
107 "default": 200
108 },
109 "fallback_type": {
110 "title": "Untyped metrics fallback",
111 "description": "Process Untyped metrics as Counter or Gauge instead of ignoring them.",
112 "type": [
113 "object",
114 "null"
115 ],
116 "properties": {
117 "gauge": {
118 "title": "As Gauge",
119 "description": "Untyped metrics matching any [pattern](https://golang.org/pkg/path/filepath/#Match) will be processed as Gauge.",
120 "type": [
121 "array",
122 "null"
123 ],
124 "items": {
125 "title": "Pattern",
126 "type": "string"
127 },
128 "uniqueItems": true
129 },
130 "counter": {
131 "title": "As Counter",
132 "description": "Untyped metrics matching any [pattern](https://golang.org/pkg/path/filepath/#Match) will be processed as Counter.",
133 "type": [
134 "array",
135 "null"
136 ],
137 "items": {
138 "title": "Pattern",
139 "type": "string"
140 },
141 "uniqueItems": true
142 }
143 }
144 },
145 "username": {
146 "title": "Username",
147 "description": "The username for basic authentication.",
148 "type": "string",
149 "sensitive": true
150 },
151 "password": {
152 "title": "Password",
153 "description": "The password for basic authentication.",
154 "type": "string",
155 "sensitive": true
156 },
157 "bearer_token_file": {
158 "title": "Bearer token file",
159 "description": "The path to the file with Bearer token.",
160 "type": "string"
161 },
162 "proxy_url": {
163 "title": "Proxy URL",
164 "description": "The URL of the proxy server.",
165 "type": "string"
166 },
167 "proxy_username": {
168 "title": "Proxy username",
169 "description": "The username for proxy authentication.",
170 "type": "string",
171 "sensitive": true
172 },
173 "proxy_password": {
174 "title": "Proxy password",
175 "description": "The password for proxy authentication.",
176 "type": "string",
177 "sensitive": true
178 },
179 "headers": {
180 "title": "Headers",
181 "description": "Additional HTTP headers to include in the request.",
182 "type": [
183 "object",
184 "null"
185 ],
186 "additionalProperties": {
187 "type": "string"
188 }
189 },
190 "tls_skip_verify": {
191 "title": "Skip TLS verification",
192 "description": "If set, TLS certificate verification will be skipped.",
193 "type": "boolean"
194 },
195 "tls_ca": {
196 "title": "TLS CA",
197 "description": "The path to the CA certificate file for TLS verification.",
198 "type": "string",
199 "pattern": "^$|^/"
200 },
201 "tls_cert": {
202 "title": "TLS certificate",
203 "description": "The path to the client certificate file for TLS authentication.",
204 "type": "string",
205 "pattern": "^$|^/"
206 },
207 "tls_key": {
208 "title": "TLS key",
209 "description": "The path to the client key file for TLS authentication.",
210 "type": "string",
211 "pattern": "^$|^/"
212 },
213 "body": {
214 "title": "Body",
215 "type": "string"
216 },
217 "method": {
218 "title": "Method",
219 "type": "string"
220 },
221 "force_http2": {
222 "title": "Force HTTP2",
223 "description": "If set, forces the use of HTTP/2 protocol for all requests, even over plain TCP (h2c).",
224 "type": "boolean"
225 }
226 },
227 "required": [
228 "url"
229 ]
230 },
231 "uiSchema": {
232 "uiOptions": {
233 "fullPage": true
234 },
235 "ui:flavour": "tabs",
236 "ui:options": {
237 "tabs": [
238 {
239 "title": "Base",
240 "fields": [
241 "update_every",
242 "autodetection_retry",
243 "url",
244 "timeout",
245 "not_follow_redirects",
246 "expected_prefix",
247 "app",
248 "vnode"
249 ]
250 },
251 {
252 "title": "Selectors",
253 "fields": [
254 "selector"
255 ]
256 },
257 {
258 "title": "Limits",
259 "fields": [
260 "max_time_series",
261 "max_time_series_per_metric"
262 ]
263 },
264 {
265 "title": "Untyped fallback",
266 "fields": [
267 "fallback_type"
268 ]
269 },
270 {
271 "title": "Auth",
272 "fields": [
273 "username",
274 "password",
275 "bearer_token_file"
276 ]
277 },
278 {
279 "title": "TLS",
280 "fields": [
281 "tls_skip_verify",
282 "tls_ca",
283 "tls_cert",
284 "tls_key"
285 ]
286 },
287 {
288 "title": "Proxy",
289 "fields": [
290 "proxy_url",
291 "proxy_username",
292 "proxy_password"
293 ]
294 },
295 {
296 "title": "Headers",
297 "fields": [
298 "headers"
299 ]
300 }
301 ]
302 },
303 "autodetection_retry": {
304 "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."
305 },
306 "vnode": {
307 "ui:placeholder": "To use this option, first create a Virtual Node and then reference its name here."
308 },
309 "url": {
310 "ui:placeholder": "http://203.0.113.0"
311 },
312 "timeout": {
313 "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)."
314 },
315 "selector": {
316 "ui:help": "The logic is as follows: `(allow1 OR allow2) AND !(deny1 OR deny2)`."
317 },
318 "username": {
319 "ui:widget": "password"
320 },
321 "proxy_username": {
322 "ui:widget": "password"
323 },
324 "password": {
325 "ui:widget": "password"
326 },
327 "proxy_password": {
328 "ui:widget": "password"
329 },
330 "body": {
331 "ui:widget": "hidden"
332 },
333 "method": {
334 "ui:widget": "hidden"
335 },
336 "force_http2": {
337 "ui:widget": "hidden"
338 }
339 }
340 }