NYXT PAPA Stats Plug-in - Technical Reference

Introduction

A NYXT Feed Handler is a software process that provides market data. This can be used in conjunction with a PapaStats utility which publishes health and system statistics about the Feed Handler.

The PapaStats utility has an xml configuration file which defines what statistics it will publish and a log file which contains the statistic (PapaStats can also publish statistics onto the wire but this is out of the scope of the plug-in).

The plug-in reads the config file and from this, it determines the location and format of the PapaStats log file and the frequency at which messages are written to that file. The Netprobe then publishes the statistics into Geneos infrastructure.

PAPA stands for Platform Agnostic Publishing API.

Views (for a single view)

View

image0

Headline Legend

Name Description
currentLogFile The log file from which statistics is currently being displayed.

Table Legend

Name Description
%CPU
%CPU[0]
%CPU[1]%
%SystemIdle
%SystemMemory
%SystemSwap
ActiveSymbols
AverageLatency
BookRequests
BytesReceived
BytesSent
CPUTime
GroupRequests
Initials
MaxBytesReceived
MaxBytesSent
MaxLatency
MaxMessagesReceived
MaxMessagesSent
Memory(RSS)
Memory(Vsize)
MessagesReceived
MessagesSent
OrderBookUpdates
PermanentlyDroppedMessages
Recaps
RecordUpdates
SubscriptionRequests
Time
TotalBytesReceived
TotalBytesSent
TotalNumberOfMessagesReceived
TotalNumberOfMessagesSent

Plug-in Configuration

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

configFile

The name of the configuration file (e.g., C:\europe\uk\london\NYXT\papastats.xml). If this is not supplied, then the user must provide values for the papaStatsFile and papaStatsInterval parameters.

Mandatory: No
Default: None

papaStatsFile

A value which overrides the value read from the configuration file. This describes the path (absolute or relative) to the directory of where to find log files and also the naming pattern that these log files adhere to.

For example, if the config file defined the stats filename to be papa.csv, the actual file being generated will be papa.csv. As data continues to roll, the PapaStats utility will rename papa.csv with a sequential number as a suffix, as follows: papa.csv1, papa.csv2, papa.csv3, and so on. This also occurs when the file reaches the maximum number of rows or exceeds the file size set in the config file. Subsequently, the new file will be recreated and will still be called papa.csv, and the plug-in will only read from it.

In previous versions, the utility created multiple cache files with the syntax papa[datestamp]_[integer].csv (e.g., papastats20080915_16.csv) where the plug-in had to find the latest cache file to read from.

Mandatory: No
Default: None

papaStatsInterval

A value which overrides the value read from the configuration file. This describes how often the latest file found in the log file directory is expected to change. The plug-in will signal an error to the user if this period elapses (since the last sampling) and the current log file has still not been updated.

Mandatory: No
Default: None

papaStatsColumnSeparator

A value which overrides the value read from the configuration file. This describes what character is used as a delimiter between record fields in the log files. If this tag has no value, the plug-in assumes that fields should be delimited by a single tab character.

The plug-in uses these tags to open the latest log file and scan to the end of it. When sampling, the plug-in checks to see that the open log file is still the latest log file. If it is not, then it is closed and the latest log file is opened. The last record is read from the log file and published.

Note: The plug-in does not keep on opening/closing files between samplings nor does it read the entire log file each sampling. It attempts to keep a pointer to the last record published so that in subsequent samplings, it can go to the last record with a minimum of processing involved.

Mandatory: No
Default: A single tab space

XML Examples

Simple Example

This example shows a typical configuration

<samplers>
          <sampler name="5782">
            <sampleInterval>
              <data>20</data>
            </sampleInterval>
           <plugin>
             <nyxt-papastats>
               <configFile>
                <data>/nyxt/tcpdemo/feeds/config/papastats.xml</data>
               </configFile>
               <papaStatsFile>
                 <data>/nyxt/tcpdemo/feeds/stats/papastats.csv</data>
               </papaStatsFile>
             </nyxt-papastats>
           </plugin>
        </sampler>
</samplers>