Monitor Query API
The monitor extension provides a simple HTTP-based API for querying request information. It allows retrieving individual request records or sets of request records, in either HTML or CSV format. Records can be filtered by time range and the result set sorted by any field. Large result sets can be paged over multiple queries.
Examples
The following examples show the syntax for common Monitoring queries.
All requests as HTML
The simplest query is to retrieve an HTML document containing information about all requests:
GET http://localhost:8080/geoserver/rest/monitor/requests.html
All requests as CSV
Request information can be returned in CSV format, for easier post-processing:
GET http://localhost:8080/geoserver/rest/monitor/requests.csv
Request bodies containing newlines are handled with quoted text. If your CSV reader doesn't handle quoted newlines, it will not work correctly.
All requests as PKZip
A PKZip archive containing the CSV file above, with all the request bodies and errors as separate files:
GET http://localhost:8080/geoserver/rest/monitor/requests.zip
All requests as MS Excel
A Microsoft Excel spreadsheet containing the same information as the CSV file:
GET http://localhost:8080/geoserver/rest/monitor/requests.xls
Requests during a time period
Requests can be filtered by date and time range:
GET http://localhost:8080/geoserver/rest/monitor/requests.html?from=2010-06-20&to=2010-07-20
GET http://localhost:8080/geoserver/rest/monitor/requests.html?from=2010-06-20T2:00:00&to=2010-06-20T16:00:00
Request set paging
Large result sets can be paged over multiple queries:
GET http://localhost:8080/geoserver/rest/monitor/requests.html?count=100
GET http://localhost:8080/geoserver/rest/monitor/requests.html?count=100&offset=100
GET http://localhost:8080/geoserver/rest/monitor/requests.html?count=100&offset=200
GET http://localhost:8080/geoserver/rest/monitor/requests.html?count=100&offset=300
Single request
An individual request can be retrieved by specifying its ID:
GET http://localhost:8080/geoserver/rest/monitor/requests/12345.html
API Reference
There are two kinds of query: one for single requests, and one for sets of requests.
Single Request Query
A query for a single request record has the structure:
GET http://<host>:<port>/geoserver/rest/monitor/requests/<id>.<format>
where id
is the numeric identifier of a single request, and format
specifies the representation of the returned result as one of:
html
- an HTML table.csv
- a Comma Separated Values table.zip
- PKZip archive containing CSV as above, plus plain text of errors and request body.xls
- Microsoft Excel spreadsheet.
Note
An alternative to specifying the returned representation with the format
extension is to use the http Accept
header and specify the MIME type as one of:
text/html
application/csv
application/zip
application/vnd.ms-excel
See the HTTP specification for more information about the Accept
header.
Request Set Query
The structure of a query for a set of requests is:
GET http://<host>:<port>/geoserver/rest/monitor/requests.<format>[?parameter{¶meter}]
where format
is as described above, and parameter
is one or more of the parameters listed below.
The request set query accepts various parameters that control what requests are returned and how they are sorted. The available parameters are:
count Parameter
Specifies how many records should be returned.
Syntax | Example |
---|---|
count=<integer> |
requests.html?count=100 |
offset Parameter
Specifies where in the result set records should be returned from.
Syntax | Example |
---|---|
offset=<integer> |
requests.html?count=100&offset=500 |
live Parameter
Specifies that only live (currently executing) requests be returned.
Syntax | Example |
---|---|
live=<yes|no|true|false> |
requests.html?live=yes |
This parameter relies on a Monitor Mode being used that maintains real time request information (either live or mixed).
from Parameter
Specifies an inclusive lower bound on the timestamp for the start of a request. The timestamp can be specified to any desired precision.
Syntax | Example |
---|---|
from=<timestamp> |
requests.html?from=2010-07-23T16:16:44 |
requests.html?from=2010-07-23 |
to Parameter
Specifies an inclusive upper bound on the timestamp for the start of a request. The timestamp can be specified to any desired precision.
Syntax | Example |
---|---|
to=<timestamp> |
requests.html?to=2010-07-24T00:00:00 |
requests.html?to=2010-07-24 |
order Parameter
Specifies which request attribute to sort by, and optionally specifies the sort direction.
- Syntax
-
Example
order=<attribute>[;<ASC|DESC>]
-
requests.html?order=path
requests.html?order=startTime;DESC
requests.html?order=totalTime;ASC