Datasinks

Documentation / Community Edition / User Guide / Agent / Datasinks

Datasinks

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

Null datasink

The null datasink is a really 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

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 myarmtcpd tool. It connects to the myarmtcpd program and hands all ARM data to the myarmtcpd process through a TCP socket connection. Note that the tcp datasink retries to connect to the myarmtcpd daemon periodically as long as ARM data available to send to the myarmtcpd daemon. 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 myarmtcpd process.

Default is localhost.

<name>.port
port number the myarmtcpd process is listening and accepts connections.

Default is 5557.

<name>.connection.idle (New since "1.3.x.0")
number of seconds to wait before closing the connection to the myarmtcpd if no ARM data needed to be send.

Default is 300s. (New since "1.3.x.7") is the minimum of 30s and the maximum of 3600s for the connection idle time.

<name>.connection.keepalive (New since "1.2.x.5")
number of seconds to send a keep alive message to the myarmtcpd if no ARM data are send.

Default is 60s. (New since "1.3.x.7") is the minimum of 30s and the maximum of the half of the <name>.connection.idle property for the keepalive time.

<name>.connection.reconnect (New since "1.4.x.0")
defines an interval value in seconds to wait before MyARM retries to connect to the myarmtcpd process again. Default is 30 second, the minimum is 10s and the maximum is 300s.
<name>.readwrite.timeout
timeout value in milliseconds to wait for reads or writes of ARM data through the connection.

Default is 500ms. (New since "1.4.x.2") is the minimum of 250ms and the maximum of 2000ms.

<name>.reply.timeout (New since "1.3.x.7")
timeout value in milliseconds to wait for a reply from the myarmtcpd daemon.

Default is 2000ms, the minimum is 500ms and the maximum is 4000ms.

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 myarmtcpd is running on
sink_tcp.host  = localhost
# set up port myarmtcpd is listening for incoming connections
sink_tcp.port = 5557
# read/write time out interval in milliseconds
sink_tcp.readwrite.timeout = 1000
# the interval for reconnecting to the daemon in seconds
sink_tcp.connection.reconnect = 60
# number of seconds to send a keep alive message if no data
# was sent to the myarmtcpd
sink_tcp.connection.keepalive = 60
# number of seconds to close the connection to myarmtcpd if no
# ARM data was sent to the server
sink_tcp.connection.idle = 300