diff options
Diffstat (limited to 'src/go/plugin/go.d/modules/httpcheck/config_schema.json')
-rw-r--r-- | src/go/plugin/go.d/modules/httpcheck/config_schema.json | 270 |
1 files changed, 270 insertions, 0 deletions
diff --git a/src/go/plugin/go.d/modules/httpcheck/config_schema.json b/src/go/plugin/go.d/modules/httpcheck/config_schema.json new file mode 100644 index 000000000..82ffc7cb5 --- /dev/null +++ b/src/go/plugin/go.d/modules/httpcheck/config_schema.json @@ -0,0 +1,270 @@ +{ + "jsonSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "HTTPCheck collector configuration.", + "type": "object", + "properties": { + "update_every": { + "title": "Update every", + "description": "Data collection interval, measured in seconds.", + "type": "integer", + "minimum": 1, + "default": 5 + }, + "url": { + "title": "URL", + "description": "The URL of the HTTP endpoint.", + "type": "string", + "format": "uri" + }, + "timeout": { + "title": "Timeout", + "description": "The timeout in seconds for the HTTP request.", + "type": "number", + "minimum": 0.5, + "default": 1 + }, + "not_follow_redirects": { + "title": "Not follow redirects", + "description": "If set, the client will not follow HTTP redirects automatically.", + "type": "boolean" + }, + "method": { + "title": "Method", + "description": "The [HTTP method](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods) to use for the request. An empty string means `GET`.", + "type": "string", + "default": "GET", + "examples": [ + "GET", + "POST", + "PUT", + "PATCH" + ] + }, + "body": { + "title": "Body", + "description": "The body content to send along with the HTTP request (if applicable).", + "type": "string" + }, + "status_accepted": { + "title": "Status code check", + "description": "Specifies the list of **HTTP response status codes** that are considered **acceptable**. Responses with status codes not included in this list will be categorized as 'bad status' in the status chart.", + "type": [ + "array", + "null" + ], + "items": { + "title": "Code", + "type": "integer", + "minimum": 100, + "default": 200 + }, + "minItems": 1, + "uniqueItems": true, + "default": [ + 200 + ] + }, + "response_match": { + "title": "Content check", + "description": "Specifies a [regular expression](https://regex101.com/) pattern to match against the content (body) of the HTTP response. This check is performed only if the response's status code is accepted.", + "type": "string" + }, + "header_match": { + "title": "Header check", + "description": "Specifies a set of rules to check for specific key-value pairs in the HTTP headers of the response.", + "type": [ + "array", + "null" + ], + "items": { + "type": [ + "object", + "null" + ], + "properties": { + "exclude": { + "title": "Exclude", + "description": "Determines whether the rule checks for the presence or absence of the specified key-value pair in the HTTP headers.", + "type": "boolean" + }, + "key": { + "title": "Header key", + "description": "Specifies the exact name of the HTTP header to check for.", + "type": "string" + }, + "value": { + "title": "Header value pattern", + "description": "Specifies the [matcher pattern](https://github.com/netdata/netdata/tree/master/src/go/plugin/go.d/pkg/matcher#readme) to match against the value of the specified header.", + "type": "string" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "username": { + "title": "Username", + "description": "The username for basic authentication.", + "type": "string", + "sensitive": true + }, + "password": { + "title": "Password", + "description": "The password for basic authentication.", + "type": "string", + "sensitive": true + }, + "cookie_file": { + "title": "Cookie file", + "description": "Specifies the path to the file containing cookies. For more information about the cookie file format, see [cookie file format](https://everything.curl.dev/http/cookies/fileformat).", + "type": "string" + }, + "proxy_url": { + "title": "Proxy URL", + "description": "The URL of the proxy server.", + "type": "string" + }, + "proxy_username": { + "title": "Proxy username", + "description": "The username for proxy authentication.", + "type": "string", + "sensitive": true + }, + "proxy_password": { + "title": "Proxy password", + "description": "The password for proxy authentication.", + "type": "string", + "sensitive": true + }, + "headers": { + "title": "Headers", + "description": "Additional HTTP headers to include in the request.", + "type": [ + "object", + "null" + ], + "additionalProperties": { + "type": "string" + } + }, + "tls_skip_verify": { + "title": "Skip TLS verification", + "description": "If set, TLS certificate verification will be skipped.", + "type": "boolean" + }, + "tls_ca": { + "title": "TLS CA", + "description": "The path to the CA certificate file for TLS verification.", + "type": "string", + "pattern": "^$|^/" + }, + "tls_cert": { + "title": "TLS certificate", + "description": "The path to the client certificate file for TLS authentication.", + "type": "string", + "pattern": "^$|^/" + }, + "tls_key": { + "title": "TLS key", + "description": "The path to the client key file for TLS authentication.", + "type": "string", + "pattern": "^$|^/" + } + }, + "required": [ + "url", + "status_accepted" + ], + "additionalProperties": false, + "patternProperties": { + "^name$": {} + } + }, + "uiSchema": { + "ui:flavour": "tabs", + "ui:options": { + "tabs": [ + { + "title": "Base", + "fields": [ + "update_every", + "url", + "timeout", + "not_follow_redirects", + "method", + "body" + ] + }, + { + "title": "Checks", + "fields": [ + "status_accepted", + "response_match", + "header_match" + ] + }, + { + "title": "Auth", + "fields": [ + "username", + "password", + "cookie_file" + ] + }, + { + "title": "TLS", + "fields": [ + "tls_skip_verify", + "tls_ca", + "tls_cert", + "tls_key" + ] + }, + { + "title": "Proxy", + "fields": [ + "proxy_url", + "proxy_username", + "proxy_password" + ] + }, + { + "title": "Headers", + "fields": [ + "headers" + ] + } + ] + }, + "uiOptions": { + "fullPage": true + }, + "url": { + "ui:placeholder": "http://127.0.0.1" + }, + "timeout": { + "ui:help": "Accepts decimals for precise control (e.g., type 1.5 for 1.5 seconds)." + }, + "method": { + "ui:placeholder": "GET" + }, + "body": { + "ui:widget": "textarea" + }, + "username": { + "ui:widget": "password" + }, + "proxy_username": { + "ui:widget": "password" + }, + "password": { + "ui:widget": "password" + }, + "proxy_password": { + "ui:widget": "password" + } + } +} |