EOL

Effective 30 April 2017, Triarch Latency reached end of life. This documentation is archived and will no longer be updated.

Triarch Latency

Introduction Copied

The Geneos Triarch Latency Plug-in monitors the latency between a SRC-DIST and a P2PS market feed. The RFA5 version of the plug-in uses the MarketFeed data format, the RFA6 version of the plug-in can use either MarketFeed or the more optimised RWF data format but can only be run on Solaris 10.

Views Copied

View Copied

The Triarch Latency plug-in produces one view, TRIARCH_LATENCY, which shows the User the time taken for market messages to pass through the system:

triarch-latency2

Headline Legend

Name Description
numSamplingReporters Number of places that the message is run
publishingInstrument Name of the publishing element that the system is publishing and then reading

Table Legend

Name Description
reporter Name of the individual reporters that are reading the Market data feed.
status Status of the connection (OK or TimedOut).
lastTurnAround Time to deliver the last message.
lastSampleTime The time that the last message was received by the reporter.
aveTurnAround5Min Average turn-around over the last 5 minutes.
aveTurnAround15Min Average turn-around over the last 15 minutes.
aveTurnAround60Min Average turn-around over the last 60 minutes.

Plug-in Configuration Copied

The following parameters can be configured for this plug-in:

config Copied

Variable to store the Thomson Reuters RFA configuration data. This will be in the Thomson Reuters RFA configuration file format (see section Latency Configuration File for details on the format). On initialization the probe will save this to the file specified in configFilename.

Mandatory: No

configFilename Copied

Full path to the latency configuration file (see section Latency Configuration Filefor details on the format). This is a Thomson Reuters RFA configuration file. If the config setting has been specified, then this file will be overwritten with the contents of the config setting every time the plug-in is initialized.

Mandatory: No

Default: latency.cfg

responseTimeout Copied

Timeout period on waiting for a message

Units: Seconds

Mandatory: No

Default: 10s

publishInterval Copied

Interval between publishing events.

Units: Seconds

Mandatory: No

Default: 20s

private Copied

The private configuration section holds settings used for debugging the plug-in.

Please contact ITRS support if you require assistance with this plug-in.

Latency Configuration File Copied

The latency configuration file is a flat file Thomson Reuters config database (for full details see Thomson Reuters Foundation API C++ Edition The Configuration Guide).

An RFA Session needs to be defined for each Reporter and the Originator. The following additional fields must be defined to bind the Originator and Reporters to the defined RFA Sessions.

Defining the Originator of the data:

Geneos\Originator\<NAME>\Session = <SessionName>Geneos\Originator\<NAME>\Subject = <SubjectName>Geneos\Originator\<NAME>\FieldName = <ItemName>Geneos\Originator\<NAME>\Type = "ManagedMarketDataPublisher"

Defining the Reporter of the data (multiple reporters can be defined I the latency at multiple points is being measured):

Geneos\Reporter\<NAME>\Session = "Session1"
Geneos\Reporter\<NAME>\Subject = <4 part Item name>Geneos\Reporter\<NAME>\Type = " MarketDataSubscriber"

In order to use the RWF data format (available with the RFA v6 version of the plug-in), use the following Reporter and Originator types instead:

Geneos\Originator\<NAME>\Type = "RDMProvider"
Geneos\ Reporter\<NAME>\Type = " RDMConsumer"

The low latency CallbackThreadModel can be enabled in the OMMConsumer with the following line:

Geneos\Reporter\<NAME>\ThreadModel = "CallbackThreadModel"

To use this the session OMMPerfMode MUST be set to “Latency” (see example 2 below)

Example 1: MarketDataFeed Copied

Adapters\SASS3_Adapter\requestQueueReadThreshold= 1
Adapters\SASS3_Adapter\mainLoopTimerInterval    = 200
Adapters\SSLED_Adapter\masterFidFile            = "/var/triarch/appendix_a"
Adapters\SSLED_Adapter\enumTypeFile             = "/var/triarch/enumtype.def"
Adapters\SSLED_Adapter\downloadDataDict         = false

Connections\Connection_SSLED\PortNumber         = 8101
Connections\Connection_SSLED\UserName           = "nbkn9hl"
Connections\Connection_SSLED\ServerList         = "itrsblade5"
Connections\Connection_SSLED\connectionType     = "SSLED"
Connections\Connection_SSLED\logEnabled = True

Connections\Connection_SSLEDMP\connectionType   = "SSLED_MP"
Connections\Connection_SSLEDMP\ipcServerName    = "s_name_5"
Connections\Connection_SSLEDMP\logEnabled       = True
Connections\Connection_SSLEDMP\logFileSize      = 10000

Logger\AppLogger\windowsLoggerEnabled           = false
Logger\AppLogger\fileLoggerEnabled              = true

# The following lines are required for RFASTTicker example

Services\LAT_TEST\dataFormat                    = "marketfeed"
Services\LAT_TEST\dataDictList                  = "MF"
Connections\Connection_SSLED\serviceList        = "LAT_TEST"
Connections\Connection_SSLEDMP\serviceList      = "LAT_TEST"
DataDictionaries\MF\dataDictType                = "marketfeed"


Logger\ComponentLoggers\Connections\messageFile = "ConnectionsMessages.mc"
Logger\ComponentLoggers\Adapter\messageFile     = "AdapterMessages.mc"
Logger\ComponentLoggers\SessionCore\messageFile = "SessionLayerMessages.mc"
Logger\ComponentLoggers\SSLED_Adapter\messageFile= "SSLED_AdapterMessages.mc"
Logger\ComponentLoggers\SSLED_MP_Adapter\messageFile= "SSLED_MP_AdapterMessages.mc"
Logger\ComponentLoggers\STIC_Adapter\messageFile = "STIC_AdapterMessages.mc"
Logger\ComponentLoggers\SASS3_Adapter\messageFile = "SASS3_AdapterMessages.mc"
Logger\ComponentLoggers\LicensingSystem\messageFile= "SessionLayerMessages.mc"


Sessions\Session1\connectionList                    = "Connection_SSLEDMP"
Sessions\Session2\connectionList                    = "Connection_SSLED"

Control\Entitlements\dacs_CbeEnabled = False
Control\Entitlements\dacs_SbeEnabled = False
Control\Entitlements\dacs_SbePubEnabled = False
Control\Entitlements\dacs_NewsCbeEnabled = False


Geneos\Originator\OriginatorName1\Session = "Session1"
Geneos\Originator\OriginatorName1\Subject = "LAT_TEST"
Geneos\Originator\OriginatorName1\FieldName = "ITEM_NAME.O"
Geneos\Originator\OriginatorName1\Type = "ManagedMarketDataPublisher"

Geneos\Reporter\ReporterUK1\Session = "Session2"
Geneos\Reporter\ReporterUK1\Subject = "LAT_TEST.ANY.ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\FieldName = "ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\Type = "MarketDataSubscriber"

Example 2: RWF Copied

Adapters\SASS3_Adapter\requestQueueReadThreshold= 1
Adapters\SASS3_Adapter\mainLoopTimerInterval    = 200
Adapters\SSLED_Adapter\masterFidFile            = "/var/triarch/appendix_a"
Adapters\SSLED_Adapter\enumTypeFile             = "/var/triarch/enumtype.def"
Adapters\SSLED_Adapter\downloadDataDict         = false
Adapters\RSSL_Cons_Adapter\Adapters\rsslMultithreaded    = false

Connections\Connection_RSSL_CONS\connectionType         = "RSSL"
Connections\Connection_RSSL_CONS\rsslPort       = 14002

Connections\Connection_RSSL_CONS\UserName               = "nbkn9hl"
Connections\Connection_RSSL_CONS\hostName       = "itrsblade4"
Connections\Connection_RSSL_CONS\logEnabled     = True

Connections\Connection_RSSL_PROV\connectionType         = "RSSL_PROV"
Connections\Connection_RSSL_PROV\rsslPort       = "14005"
Connections\Connection_RSSL_PROV\logEnabled     = True
Connections\Connection_RSSL_PROV\logFileSize    = 10000
Connections\Connection_RSSL_PROV\hostName       = "itrsblade4"
Connections\Connection_RSSL_PROV\maxOutputBuffers         = 1000
Connections\Connection_RSSL_PROV\guaranteedOutputBuffers  = 1000
Connections\Connection_RSSL_PROV\flushRetryInterval       = 100
Connections\Connection_RSSL_PROV\tcp_nodelay              = true
Connections\Connection_RSSL_PROV\forceFlushOnWrite        = true
Logger\AppLogger\windowsLoggerEnabled           = false
Logger\AppLogger\fileLoggerEnabled              = true

# The following lines are required for RFASTTicker example

Services\LAT_TEST\dataFormat                    = "marketfeed"
Services\LAT_TEST\dataDictList                  = "MF"
Connections\Connection_RSSL_CONS\serviceList    = "LAT_TEST"
Connections\Connection_RSSL_PROV\serviceList    = "LAT_TEST"
DataDictionaries\MF\dataDictType                = "marketfeed"


Logger\ComponentLoggers\Connections\messageFile = "ConnectionsMessages.mc"
Logger\ComponentLoggers\Adapter\messageFile     = "AdapterMessages.mc"
Logger\ComponentLoggers\SessionCore\messageFile = "SessionLayerMessages.mc"
Logger\ComponentLoggers\SSLED_Adapter\messageFile= "SSLED_AdapterMessages.mc"
Logger\ComponentLoggers\SSLED_MP_Adapter\messageFile= "SSLED_MP_AdapterMessages.mc"
Logger\ComponentLoggers\STIC_Adapter\messageFile = "STIC_AdapterMessages.mc"
Logger\ComponentLoggers\SASS3_Adapter\messageFile = "SASS3_AdapterMessages.mc"
Logger\ComponentLoggers\LicensingSystem\messageFile= "SessionLayerMessages.mc"


Sessions\Session1\connectionList                        = "Connection_RSSL_PROV"
Sessions\Session2\connectionList                        = "Connection_RSSL_CONS"

Sessions\Session1\responseQueueMaxBatchSize = 1
Sessions\Session1\responseQueueBatchInterval = 10
Sessions\Session1\responseQueueBias = 5

Sessions\Session2\OMMPerfMode = "Latency"
Sessions\Session2\responseQueueMaxBatchSize = 1
Sessions\Session2\responseQueueBatchInterval = 10
Sessions\Session2\responseQueueBias = 1

Control\Entitlements\dacs_CbeEnabled = False
Control\Entitlements\dacs_SbeEnabled = False
Control\Entitlements\dacs_SbePubEnabled = False
Control\Entitlements\dacs_NewsCbeEnabled = False


Geneos\Originator\OriginatorName1\Session = "Session1"
Geneos\Originator\OriginatorName1\Subject = "LAT_TEST"
Geneos\Originator\OriginatorName1\FieldName = "ITEM_NAME.O"
Geneos\Originator\OriginatorName1\Type = " RDMProvider"

Geneos\Reporter\ReporterUK1\Session = "Session2"
Geneos\Reporter\ReporterUK1\Subject = "LAT_TEST.ANY.ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\FieldName = "ITEM_NAME.O"
Geneos\Reporter\ReporterUK1\Type = " RDMConsumer"
Geneos\Reporter\ReporterUK1\ThreadModel = "CallbackThreadModel"
["Geneos"] ["Geneos > Netprobe"] ["Technical Reference"] "1"

Was this topic helpful?