oml2-proxy-server - Buffer OML client measurements for later replay to an upstream server.
oml2-proxy-server [-l port | --listen=port] [-r file | --resultfile=file] [-s size| --size=size] [-a addr | --dstaddress=addr] [-p port | --dstport=port] [-d level | --debug-level=level] [--logfile=file] [-v | --version] [-? | --help]
oml2-proxy-server provides a buffered proxy for the oml2-server(1) for use in situations where either the normal oml2-server is not reachable, or where using a reachable oml2-server to store measurements as they are made would disturb the phenomena being measured.
The oml2-proxy-server listens for OML client connections on the port given with the -l option, and buffers the subsequent measurement traffic in memory. When it receives an OML-RESUME command (see below), oml2-proxy-server connects to the upstream oml2-server daemon (specified with the -a and -p options) and then sends all buffered measurements to the upstream server.
The buffering scheme is very simple: the client measurement streams are stored in the buffer without translation, and then simply replayed to the upstream server when the proxy is resumed. This allows the oml2-proxy-server implementation to be very simple.
The oml2-proxy-server listens for the OMLPROXY-PAUSE and OMLPROXY-RESUME commands on its stdin file descriptor. The operator must therefore leave the process attached to an open terminal or pipe whilst it is running in order to control it. The commands must be typed in upper case as listed here, followed by a carriage return (ENTER key).
The OMLPROXY-PAUSE command pauses the transmission of measurements to the upstream server. When oml2-proxy-server starts, it is in this state.
The OMLPROXY-RESUME command resumes transmission of measurements to the upstream server.
A typical usage scenario is to start the oml2-proxy-server and leave it in the paused state, then conduct measurements, and when measurement activities have finished, issue the OMLPROXY-RESUME command to order the proxy server to send measurements to the upstream OML server.
As well as storing the measurement streams in memory, the oml2-proxy-server also saves them to a file on disk, whose name and location can be specified with the -r option.
- -l port
Listen for connections from OML clients on port (default 3003).
- -d level
Set the verbosity of the log output to level. The level should be an integer from 1 to 4 (1=ERROR, 2=WARNING, 3=INFO, 4=DEBUG). The default log verbosity is 3, INFO.
Write log messages to the given file. The default file is oml_proxy_server.log.
- -r file
Save results into the given disk file. The default result file name is oml_result_proxy.log. If the result file already exists then a new one will be created with a unique name based on file.
- -s bytes
Buffer page size in bytes.
- -p port
Upstream server port number (default port is 3003).
- -a address
Upstream server address (default is localhost).
Print the version number of oml2-proxy-server.
Print a summary of available options.
Display a brief usage message.
The oml2-proxy-server is still experimental software and under active development. It may contain bugs, and its interfaces may change without warning from version to version, even within the 2.x major release series. We will strive to keep the interface backwards compatible for patch-level releases within a minor release series (i.e. version 2.3.5 should be backwards compatible with 2.3.4), but we may change the interface between minor release series (e.g. version 2.4.0 might not be backwards compatible with 2.3.5).
If a problem you are experiencing is not addressed in the FAQ (http://oml.mytestbed.net/projects/oml/wiki/FAQ_and_Support) nor already present in the list of know bugs (http://oml.mytestbed.net/projects/oml/issues). You could discuss it on the mailing list (details and archives at http://oml.mytestbed.net/tab/show?id=oml).
It is however advisable to open a ticket on our issue tracker at http://oml.mytestbed.net/projects/oml/issues/new. Don’t forget to include details such as client and server logs (at [--oml-log-level|-d] 2). It also helps if you can share the source code of a (minimal, if possible) example reliably triggering the problem.