For version 3 we have improved the debug abilities of our software. For those who are interested, this topic will describe how to activate the special debug mode and how to understand whats happening in detail.
To activate the debug view, double-click the HTS icon in the top left. This is the general overview. You can see the general statistics and health on this view.
The chart is showing 2 very important lines. We have setup a separate thread which is counting the seconds that have passed; this is called the heartbeat. We are expecting to count 20 seconds each time we update the chart. If the chart shows fewer heartbeats, then something is wrong. This is a telltale sign of a CPU that can not handle the load placed on it by the software.
The second line is showing Waiting Threads. This is a technical name, but it is showing how many threads are waiting to be executed. In theory, if your computer has fewer cores this stack of waiting threads becomes larger. Again, this is a sign the computer can not handle the load. Keep in mind having threads waiting is normal, the software is heavily multi-threaded.
Inside the totals there are a few fields of interest. First, we can see if any exception has happened inside the software while it was running. Secondly, the database field can indicate if the database is functioning properly. For the software it's essential to have a good, quick, and functioning database.
The history engine is showing the status of the price history and the price history synchronization process.
The chart is showing 2 lines representing a stack, which can be compared to a to do list. Again, both lines are important and in this case they are designed to "take-over". The WorkingStack is the initial to do list of all the price markets which are required to be synced. Once the WorkingStack is done with a price market it's passed to the AlignmentStack. In here the prices are kept up to date.
The WorkingStack is designed to reach 0. Over time this stack has to become empty and then everything is in sync. It might take a while before it reaches 0, because the full price history is perfectly aligned inside the database then is removed from the WorkingStack.
In the event where is never reaches 0 its an telltale of an problem. It means no price updates are received from both the price driver and the white server. So its impossible to those the prices aligned nicely. To see which price market are affected you can expand the details listed below it. The details will tell how many times an sync is called, if the price market has been given up to be synced and such.
Its just the technical name, but at the white server we can see how the price backbone is preforming. This is the backup system to get price update in case you have connections problems. Its also used as main source when the low-power mode is activated
On the chart you can see 2 lines, one showing the amount of subscriptions (price requests) to the White Server and the other line shows the ServerMessages received back. These (of course) represent price updates.
To detect issues you need to watch the subscriptions. In general its only needed to subscribe once to our server. But if more subscriptions happen then its an telltale of missing price data. If you see this its best to give us an sign so we can resolve this. There are additional details available for which price markets are involved. To see it you need to expand the details shown below.
The software is designed to switch over automatically in the event an price server gets compromised somehow. We list this number as server re-selections, and if this number goes up very high then its an telltale of an firewall blocking or an very big problem on our end.
The price driver is the overall driver to handle the price updates. It shows an chart telling how many updates have been progressed for the last 20 seconds.
Except for seeing the load the updates are doing you can not really see much directly at this view. However, if you expand the details then an nice table will show up. It will tell per price source how many errors/re-connections have been done in total. These are the most important numbers because its telling how stable the price driver itself is. Next the amount of updates are listed (collected per minute) to see if some data is missing. On the most right corner there is the average required time listed for the connection. The is the second most important number, if it list an very high time needed then it means your connection to this exchange is not good.
The account driver is the overall driver to handle all the accounts. Also here the charts is showing the amount of updates from all the activated accounts. (including the simulated ones)
Be sure to be descriptive of the issue you are experiencing so that the HTS developers can look into the issue and provide fixes as soon as they can.