Web

Synopsis

rsb web [OPTIONS] URI*

Description

Serve via HTTP information about the RSB system reachable via the transports designated by URIs (zero or more URIs).

When no URIs are supplied, the default transport configuration is used.

The usual commandline options and environment variables are accepted. Specialized commandline options:

--address ADDRESS

Address on which the HTTP server should listen.

--port PORT

Port on which the HTTP server should listen.

--document-root DIRECTORY

Directory from which static content such as HTML pages and CSS files should be read.

--response-timeout SECONDS

Time in seconds to wait for responses to introspection requests.

In most systems, all replies should arrive within a few milliseconds. However, circumstances like heavily loaded system, degraded system performance or extreme communication latency may required larger values.

See also

URIs
For details regarding the URI syntax of URI for specifying transport and scope.
Common Commandline Options
The usual commandline options are accepted.

Provided HTTP Endpoints

For all /api/** endpoints, at least the content types text/html and application/json are supported.

If the Accept header indicates that the response content type should be HTML, the response body is a HTML document containing a human-readable description of the endpoint.

If the Accept header indicates that the response content type should be JSON, the response body is of one of the forms

{"data": DATA}
{"error": DESCRIPTION}
{"data": DATA, "error": DESCRIPTION}

i.e. at least one of the "data" and "error" properties is present. Both can be present if an error occurs while streaming the body of an initially successful response.

The following endpoints are provided:

http://ADDRESS:PORT/

Either the contents of the directory specified via the --document-root option or built-in resource files are made available here.

http://ADDRESS:PORT/api/introspection/snapshot

A JSON-serialization of a snapshot of the introspection data for the system or systems specified via URIs can be obtained here.

http://ADDRESS:PORT/api/introspection/search

Query the introspection database using XPath, receive JSON-serialized results.

Return an atomic result for expressions not evaluating to node sets and an array of matches otherwise. An atomic result can be a number or string. For example, the result of the query:

count(//@foo)

is a number. A match can be an attribute match or an element match.

Accepted query parameters:

  • query [required]

    The (non-empty) query string. One of the following things:

    • An XPath expression.
    • One or more words: match any node (element, attribute, text) containing all words.
  • start: non-negative-integer [optional]

    Index of first node in match sequence that should be returned.

  • limit: positive-integer [optional]

    Number of nodes from the match sequence that should be returned.

Examples

  • $ rsb web
    

    In the above example, the web command is used to collect information about the RSB system or systems that can be contacted via the currently configured transports. The information is served via HTTP, with the server listening on the default address and port, i.e. http://localhost:4444.

  • $ rsb web socket: spread://somehost
    

    Gather information via two transports: the socket transport and the Spread transport. The gathered information is merged as if all collected processes and participants were participant in a single RSB bus.

Implementations

Implementation Language Project Repository Link
Common Lisp rsb-tools-cl “0.16” branch of https://code.cor-lab.de/git/rsb.git.tools-cl