Datasinks

Documentation / Community Edition / User Guide / Agent / Datasinks

Datasinks

The following section describes all available datasinks. The MyARM agent implementation and the myarmdaemon are using datasinks to export measured ARM data to a configured datasink destination.

Null datasink

The null datasink in reality is a no operation datasink. Say you have setup a complete environment with ARM instrumentation enabled, but in some circumstances you want no transactions to be measured. Just configure the use of this null datasink and no data will be recorded at all:

# agent uses a datasink named noop
agent.sink.name = noop
# noop defines a null datasink type
noop.type = null

Database datasinks

The following database datasinks are supported in this edition:

SQLite datasink

The sqlite3 datasink uses the SQLite database as described in SQLite database.

TCP datasink

The tcp datasink is used in conjunction with the myarmdaemon tool. It connects to the myarmdaemon program and sends all ARM data to the myarmdaemon process through a TCP socket connection. Note that the tcp datasink retries to connect to the myarmdaemon periodically as long as there is ARM data available to send to the myarmdaemon. If there is no ARM data available to send for at least <name>.connection.idle time, the connection is closed.

In addition to the standard datasink properties, the tcp datasink uses the following properties:

<name>.host
name of the host to connect to the myarmdaemon process.

Default is localhost.

<name>.port
port number on which the myarmdaemon process is listening and accepts connections.

Default is 5557.

<name>.connection.idle
specified as an interval (with a suffix m for minutes, s for seconds or h for hours) to wait before closing the connection to the myarmdaemon if no ARM data needs to be sent.

Default is 5m (5 minutes), minimum is 30s (30 seconds) and the maximum of 1h (1 hour) for the connection idle time.

<name>.connection.keepalive
specified as an interval (with a suffix m for minutes or s for seconds) to send a keep alive message to the myarmdaemon if there is no ARM data to be sent.

Default is 1m (1 minute), minimum is 30s (30 seconds) and the maximum is 1/2 of the value for the <name>.connection.idle <name>.connection.idle property.

<name>.connection.reconnect
specified as an interval (with a suffix m for minutes or s for seconds) to wait before MyARM retries to connect to the myarmdaemon process again.

Default is 30s (30 seconds), the minimum is 10s (10 seconds) and the maximum is 5m (5 minutes).

<name>.readwrite.timeout
timeout value (with a suffix ms for milliseconds or s for seconds) to wait for reads or writes of ARM data through the connection.

Default is 500ms (500 milliseconds). Minimum is 250ms (250 milliseconds) and the maximum is 2s (2 seconds).

<name>.reply.timeout
timeout value (with a suffix ms for milliseconds or s for seconds) to wait for a reply from the myarmdaemon.

Default is 2s (2 seconds), minimum is 500ms (500 milliseconds) and the maximum is 4s (4 seconds).

Configuration example

# agent uses a datasink named sink_tcp
agent.sink.name = sink_tcp
# set up sink type
sink_tcp.type = tcp
# set up host myarmdaemon is running on
sink_tcp.host  = localhost
# set up port myarmdaemon is listening for incoming connections
sink_tcp.port = 5557
# read/write time out interval
sink_tcp.readwrite.timeout = 1s
# the interval for reconnecting to the daemon in seconds
sink_tcp.connection.reconnect = 1m
# send a keep alive message after 1 minute if no data
sink_tcp.connection.keepalive = 1m
# close the connection to myarmdaemon after 5 minutes if no data
sink_tcp.connection.idle = 5m