Request Status
This screen displays information about the status of Data Discovery and SQL Pass-thru requests made by clients. It is accessible from the main menu (Request Status) or from the URL /reqstatus
.
It can be useful for monitoring the progress of long-running requests and seeing where in the SlashDB execution pipeline they are taking longest to process.
This page is always accessible to the admin user.
Non-admin users will be able to see Data Discovery requests for databases that they have mappings for, and for any SQL Pass-thru queries that they have execute permissions for.
Important
If running SlashDB in multiprocess mode, you must configure the memcache daemon for the Request Status page to register all requests properly.
There is no fixed limit to the number of requests that can be logged; it is limited by server memory in single process mode, and both server and memcache memory limits in multiprocess mode. Requests will expire out of memory/memcache after a period of time, configurable in the INI settings.
Warning
The default memcache settings distributed with SlashDB will support roughly 7-8 thousand requests at a time in the log. If this limit is breached, memcache will arbitrarily evict items from its cache to make space for new items, and request statuses will disappear. Consult the memcache documentation for details about increasing the memcache memory limit.
Request Status List
Each request entry will appear in a list.
Info
The list does not refresh automatically.
Each entry in the list has:
- a unique Request ID assigned to the request
- the HTTP Method of the request (GET, POST, PUT, DELETE)
- the URL Path of the request
- the Start Time when the incoming request was received
- the current Duration of the request (in milliseconds)
- the current Status of the request - can be Completed, Executing, or Failed
Info
The list is also available in JSON format at /reqstatus.json
.
The list can be filtered by using the input fields above the list headers or sorted by clicking on column headers.
Status will filter requests by completion status.
- There are 5 other Fields you may filter by:
- Request ID (exact match only)
- Method (GET, POST, PUT, DELETE, HEAD)
- Path (full or partial string matching, case sensitive)
- Start Time (full or partial value matching)
- Duration (numeric value matching)
The Option dropdown will change to display the available filtering options for the Method, Start Time, and Duration fields. Use the text input field to enter the value you want to filter against.
Request ID and Path have no filtering options; just input the value you wish to filter by into the text input field.
Click on the Search button once you have entered your filtering criteria to filter the request status list.
The Clear Filter button will clear any existing filters and sorting that are currently set.
Use the Paging buttons to browse through the list of request statuses. The number of statuses that are shown on each page
is controlled by the limit parameter in the address bar.
Important
Requests are not kept in the list forever. They will disappear after exceeding a certain time threshold. See INI Parameters for more info.
Actions
To view more details about the request, click the List icon in the Action column.
Request Status Details
Clicking on the corresponding List icon for an entry in the list will reveal a pane with more details:
- the user_id that executed the request
- the HTTP method of the request
- the proc_id (process ID) of the SlashDB process that executed the request
- the t_id (thread ID) of the SlashDB worker that handled the request
- the t_name (thread name) of the SlashDB worker that is handling the request
-
the URL path of the request
-
the redir_path (redirected path), if the request completes with a 3xx HTTP status code
- the database resource, for Data Discovery requests, or the query_id for SQL Pass-thru requests
- the db_id (database ID)
- the duration that the request took to execute, in milliseconds
- the http_status_code of the response
- the err_msg (error message) logged if the request fails
Info
HTTP status codes will not appear until the response has been generated.
URL Parameters (Modifiers) that were provided with the request are also listed.
Finally, there is a Status Timeline with timestamps, showing each stage of the request as it goes through the execution pipeline.
This can be used to determine how long each stage of a request takes to complete. Refreshing the Request Status list will update the status timeline of an executing request with the latest available status.
Below are two request details panes; on the left a successful request, on the right a failed request:
INI Parameters
The following INI parameters are available for configuring the request status view:
enable_request_status
- enable or disable request status loggingrequest_status_lifetime
- how long to keep requests in the Request Status view