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:
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"