
The module command self links now point to an endpoint that executes the module command. Depending on the type of the module command, either a GET or a POST request must be made.
426 lines
10 KiB
Markdown
426 lines
10 KiB
Markdown
# MaxScale Resource
|
|
|
|
The MaxScale resource represents a MaxScale instance and it is the core on top
|
|
of which the modules build upon.
|
|
|
|
## Resource Operations
|
|
|
|
## Get global information
|
|
|
|
Retrieve global information about a MaxScale instance. This includes various
|
|
file locations, configuration options and version information.
|
|
|
|
```
|
|
GET /v1/maxscale
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/"
|
|
},
|
|
"data": {
|
|
"attributes": {
|
|
"parameters": {
|
|
"libdir": "/usr/lib64/maxscale",
|
|
"datadir": "/var/lib/maxscale",
|
|
"process_datadir": "/var/lib/maxscale/data16218",
|
|
"cachedir": "/var/cache/maxscale",
|
|
"configdir": "/etc",
|
|
"config_persistdir": "/var/lib/maxscale/maxscale.cnf.d",
|
|
"module_configdir": "/etc/maxscale.modules.d",
|
|
"piddir": "/var/run/maxscale",
|
|
"logdir": "/var/log/maxscale",
|
|
"langdir": "/var/lib/maxscale",
|
|
"execdir": "/usr/bin",
|
|
"connector_plugindir": "/var/lib/plugin",
|
|
"threads": 4,
|
|
"auth_connect_timeout": 3,
|
|
"auth_read_timeout": 1,
|
|
"auth_write_timeout": 2,
|
|
"skip_permission_checks": false,
|
|
"syslog": true,
|
|
"maxlog": true,
|
|
"log_to_shm": false,
|
|
"query_classifier": ""
|
|
},
|
|
"version": "2.1.3",
|
|
"commit": "a32aa6c16236d2d8830e1286ea3aa4dba19174ec",
|
|
"started_at": "Wed, 17 May 2017 05:33:46 GMT",
|
|
"uptime": 19
|
|
},
|
|
"id": "maxscale",
|
|
"type": "maxscale"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Get thread information
|
|
|
|
Get the information and statistics of a particular thread. The _:id_ in
|
|
the URI must map to a valid thread number between 0 and the configured
|
|
value of `threads`.
|
|
|
|
```
|
|
GET /v1/maxscale/threads/:id
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/threads/0"
|
|
},
|
|
"data": {
|
|
"id": "0",
|
|
"type": "threads",
|
|
"attributes": {
|
|
"stats": {
|
|
"reads": 2,
|
|
"writes": 0,
|
|
"errors": 0,
|
|
"hangups": 0,
|
|
"accepts": 0,
|
|
"blocking_polls": 180,
|
|
"event_queue_length": 1,
|
|
"max_event_queue_length": 1,
|
|
"max_exec_time": 0,
|
|
"max_queue_time": 0
|
|
}
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/threads/0"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Get information for all threads
|
|
|
|
Get the informatino for all threads. Returns a collection of threads resources.
|
|
|
|
```
|
|
GET /v1/maxscale/threads
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/threads/"
|
|
},
|
|
"data": [
|
|
{
|
|
"id": "0",
|
|
"type": "threads",
|
|
"attributes": {
|
|
"stats": {
|
|
"reads": 1,
|
|
"writes": 0,
|
|
"errors": 0,
|
|
"hangups": 0,
|
|
"accepts": 0,
|
|
"blocking_polls": 116,
|
|
"event_queue_length": 1,
|
|
"max_event_queue_length": 1,
|
|
"max_exec_time": 0,
|
|
"max_queue_time": 0
|
|
}
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/threads/0"
|
|
}
|
|
},
|
|
{
|
|
"id": "1",
|
|
"type": "threads",
|
|
"attributes": {
|
|
"stats": {
|
|
"reads": 1,
|
|
"writes": 0,
|
|
"errors": 0,
|
|
"hangups": 0,
|
|
"accepts": 0,
|
|
"blocking_polls": 116,
|
|
"event_queue_length": 1,
|
|
"max_event_queue_length": 1,
|
|
"max_exec_time": 0,
|
|
"max_queue_time": 0
|
|
}
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/threads/1"
|
|
}
|
|
},
|
|
{
|
|
"id": "2",
|
|
"type": "threads",
|
|
"attributes": {
|
|
"stats": {
|
|
"reads": 1,
|
|
"writes": 0,
|
|
"errors": 0,
|
|
"hangups": 0,
|
|
"accepts": 0,
|
|
"blocking_polls": 116,
|
|
"event_queue_length": 1,
|
|
"max_event_queue_length": 1,
|
|
"max_exec_time": 0,
|
|
"max_queue_time": 0
|
|
}
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/threads/2"
|
|
}
|
|
},
|
|
{
|
|
"id": "3",
|
|
"type": "threads",
|
|
"attributes": {
|
|
"stats": {
|
|
"reads": 1,
|
|
"writes": 0,
|
|
"errors": 0,
|
|
"hangups": 0,
|
|
"accepts": 0,
|
|
"blocking_polls": 116,
|
|
"event_queue_length": 1,
|
|
"max_event_queue_length": 1,
|
|
"max_exec_time": 0,
|
|
"max_queue_time": 0
|
|
}
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/threads/3"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Get logging information
|
|
|
|
Get information about the current state of logging, enabled log files and the
|
|
location where the log files are stored.
|
|
|
|
```
|
|
GET /v1/maxscale/logs
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/logs/"
|
|
},
|
|
"data": {
|
|
"attributes": {
|
|
"parameters": {
|
|
"highprecision": false,
|
|
"maxlog": true,
|
|
"syslog": true,
|
|
"throttling": {
|
|
"count": 10,
|
|
"suppress_ms": 10000,
|
|
"window_ms": 1000
|
|
},
|
|
"log_warning": true,
|
|
"log_notice": true,
|
|
"log_info": false,
|
|
"log_debug": false
|
|
}
|
|
},
|
|
"id": "logs",
|
|
"type": "logs"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Flush and rotate log files
|
|
|
|
Flushes any pending messages to disk and reopens the log files. The body of the
|
|
message is ignored.
|
|
|
|
```
|
|
POST /v1/maxscale/logs/flush
|
|
```
|
|
|
|
#### Response
|
|
|
|
```
|
|
Status: 204 No Content
|
|
```
|
|
|
|
## Get task schedule
|
|
|
|
Retrieve all pending tasks that are queued for execution.
|
|
|
|
```
|
|
GET /v1/maxscale/tasks
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/tasks/"
|
|
},
|
|
"data": [] // No tasks active
|
|
}
|
|
```
|
|
|
|
## Get loaded modules
|
|
|
|
Retrieve information about a loaded module. This includes version, API and
|
|
maturity information as well as all the parameters that the module defines.
|
|
|
|
```
|
|
GET /v1/maxscale/modules
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/modules/"
|
|
},
|
|
"data": {
|
|
"id": "dbfwfilter",
|
|
"type": "module",
|
|
"attributes": {
|
|
"module_type": "Filter",
|
|
"version": "V1.2.0",
|
|
"description": "Firewall Filter",
|
|
"api": "filter",
|
|
"status": "GA",
|
|
"commands": [
|
|
{
|
|
"id": "rules/reload",
|
|
"type": "module_command",
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/modules/dbfwfilter/rules/reload"
|
|
},
|
|
"attributes": {
|
|
"method": "POST",
|
|
"arg_min": 1,
|
|
"arg_max": 2,
|
|
"parameters": [
|
|
{
|
|
"description": "Filter to reload",
|
|
"type": "FILTER",
|
|
"required": true
|
|
},
|
|
{
|
|
"description": "Path to rule file",
|
|
"type": "[STRING]",
|
|
"required": false
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "rules",
|
|
"type": "path"
|
|
},
|
|
{
|
|
"name": "log_match",
|
|
"type": "bool",
|
|
"default_value": "false"
|
|
},
|
|
{
|
|
"name": "log_no_match",
|
|
"type": "bool",
|
|
"default_value": "false"
|
|
},
|
|
{
|
|
"name": "action",
|
|
"type": "enum",
|
|
"default_value": "block",
|
|
"enum_values": [
|
|
"allow",
|
|
"block",
|
|
"ignore"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/modules/dbfwfilter"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Get all loaded modules
|
|
|
|
Retrieve information about all loaded modules.
|
|
|
|
```
|
|
GET /v1/maxscale/modules
|
|
```
|
|
|
|
#### Response
|
|
|
|
`Status: 200 OK`
|
|
|
|
```javascript
|
|
{
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/maxscale/modules/"
|
|
},
|
|
"data": [
|
|
{
|
|
"id": "qc_sqlite",
|
|
"type": "module",
|
|
"attributes": {
|
|
"module_type": "QueryClassifier",
|
|
"version": "V1.0.0",
|
|
"description": "Query classifier using sqlite.",
|
|
"api": "query_classifier",
|
|
"status": "Beta",
|
|
"parameters": []
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/modules/qc_sqlite"
|
|
}
|
|
},
|
|
{
|
|
"id": "MySQLAuth",
|
|
"type": "module",
|
|
"attributes": {
|
|
"module_type": "Authenticator",
|
|
"version": "V1.1.0",
|
|
"description": "The MySQL client to MaxScale authenticator implementation",
|
|
"api": "authenticator",
|
|
"status": "GA",
|
|
"parameters": []
|
|
},
|
|
"links": {
|
|
"self": "http://localhost:8989/v1/modules/MySQLAuth"
|
|
}
|
|
},
|
|
]
|
|
}
|
|
```
|