mirror of https://github.com/alibaba/arthas.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.9 KiB
Markdown
80 lines
2.9 KiB
Markdown
5 years ago
|
|
||
|
### Overview
|
||
|
|
||
|
Http API provides a RESTful-like interactive interface, and both
|
||
|
requests and responses data in JSON format. Compared with
|
||
|
Telnet/WebConsole's output unstructured text data, Http API can provide
|
||
|
structured data and support more complex interactive functions, such as
|
||
|
a series of diagnostic operations in specific application scenarios.
|
||
|
|
||
|
|
||
|
#### Access address
|
||
|
|
||
|
The Http API address is: `http://ip:port/api`, the request parameters
|
||
|
must be submitted using `POST`. Such as POST
|
||
|
`http://127.0.0.1:8563/api`.
|
||
|
|
||
|
Note: The telnet port `3658` has compatibility issues with the Chrome
|
||
|
browser. It is recommended to use the http port `8563` to access the
|
||
|
http api.
|
||
|
|
||
|
|
||
|
#### Request data format
|
||
|
|
||
|
```json
|
||
|
{
|
||
|
"action": "exec",
|
||
|
"requestId": "req112",
|
||
|
"sessionId": "94766d3c-8b39-42d3-8596-98aee3ccbefb",
|
||
|
"consumerId": "955dbd1325334a84972b0f3ac19de4f7_2",
|
||
|
"command": "version",
|
||
|
"execTimeout": "10000"
|
||
|
}
|
||
|
```
|
||
|
Request data format description:
|
||
|
|
||
|
* `action` : The requested action/behavior, please refer to "Request
|
||
|
Actions" for optional values.
|
||
|
* `requestId` : Optional request ID, generated by the client.
|
||
|
* `sessionId` : Arthas session ID, one-time command does not need to
|
||
|
set the session ID.
|
||
|
* `consumerId` : Arthas consumer ID, used for multi-person sharing
|
||
|
sessions.
|
||
|
* `command` : Arthas command line
|
||
|
* `execTimeout` : Timeout for executing commands (ms), default value is 30000.
|
||
|
|
||
|
Note: Different actions use different parameters. Set the parameters
|
||
|
according to the specific action.
|
||
|
|
||
|
#### Request Actions
|
||
|
|
||
|
Currently supported request actions are as follows:
|
||
|
|
||
|
* `exec` : The command is executed synchronously, and the command
|
||
|
results is returned after the command execution end or interrupted.
|
||
|
* `async_exec` : The command is executed asynchronously, and the
|
||
|
scheduling result of the command is returned immediately. The command
|
||
|
execution result is obtained through `pull_results` action.
|
||
|
* `interrupt_job` : To interrupt the foreground command of the session,
|
||
|
similar to the function of Telnet `Ctrl + c`.
|
||
|
* `pull_results` : Get the result of the command executed
|
||
|
asynchronously, and execute it repeatedly in http long-polling mode.
|
||
|
* `init_session` : Create new session.
|
||
|
* `join_session` : Join the session, used to support multiple people
|
||
|
sharing the same Arthas session.
|
||
|
* `close_session` : Close the session.
|
||
|
|
||
|
#### Response status
|
||
|
|
||
|
The state attribute in the response indicates the request processing
|
||
|
state, and its value is as follows:
|
||
|
|
||
|
* `SCHEDULED`: When the command is executed asynchronously, it means that
|
||
|
the job has been created, and may not be executed yet or is being
|
||
|
executed;
|
||
|
* `SUCCEEDED`: The request is processed successfully (completed status);
|
||
|
* `FAILED`: Request processing failed (completed status), usually
|
||
|
accompanied by a message explaining the reason;
|
||
|
* `REFUSED`: The request is rejected (completed status), usually
|
||
|
accompanied by a message explaining the reason;
|