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
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.
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.
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.
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.
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>