OpenHFT/Chronicle-Engine

fixed issue with procPrefix in network stats

Closed this issue · 0 comments

We are having some issue with the creation of proc files by chronicle engine. Specifically, we have been using the method

VanillaAssetTree createAssetTree(String yamlConfigFile, String region, int hostId, String clusterName, String procPrefix)

in EngineInstance to create chronicle maps. We use the procPrefix parameter so that the additional queues created by chronicle engine are in a path of our choice. This is necessary as we are not allowed to create files in the process’s working directory in prod, which is monitored.

In particular, we need to control where the following directory is created:
proc\connections\cluster\throughput
This directory, in turn, contains a subdirectory for each node in the cluster.

The procPrefix parameter has effect when I run locally with a 3 node cluster configuration, but when the same process runs on a server, the queues for the local host id are created in the current working directory, while the queues for the other nodes are created where specified by the proc prefix parameter.
That is, if the process runs as with host id = 1:
· proc\connections\cluster\throughput\2 and proc\connections\cluster\throughput\3 -> created in procPrefix directory, as expected;
· proc\connections\cluster\throughput\1 -> created in current working directory, wrongly.

Looking at the code for chronicle engine, and searching for “\proc\connections\cluster\throughput” it seems that there are classes that reference the path without the prefix parameter. For example AssetTree class, or EngineNetworkStatsListener class.