Skip to content

Frontend Servers

A technical walk-through of how PerformanceGuard frontend servers work.

The frontend server exposes a Telnet interface. By default, the Telnet server runs on port 4002, but the port number may be changed using the admin-port parameter.
In order to log in to the frontend server Telnet interface, you need to supply the name and password of the PerformanceGuard administrator. By default this is

  • User name: admin
  • Password: admin

When you connect to the frontend server via Telnet, type help to view a list of available commands.

By default, the frontend server logs important information in its log files located in the /collector/logs subfolder of the PerformanceGuard installation folder.
The frontend logging mechanism is implemented using Java™ Logging. 

The logging detail level, etc. is configured in the file specified in the log-config file parameter; by default this is the file [PerformanceGuard installation folder]\collector\conf\log4j.properties.

Test Connectivity
The logging detail level, etc. is configured in the file specified in the file logback.xml.

The stderr and stdout from the collector process are redirected to two files - stderr.log and stdout.log respectively.

The log files are ASCII text files, and are usually just accessed with an editor or Windows Notepad.

In complex environments it’s sometimes necessary to test if the network path (for example firewalls, proxies and routers) has been successfully set up from a location to the frontend server.
If everything is fine, agents will appear in the list of active agents in the PerformanceGuard web interface.

If an agent doesn’t appear as active in the PerformanceGuard web interface, and you suspect that the network is causing the problem, you can test if a connection can be established using the Windows Telnet command.

The IP address of the frontend in the example is 192.168.101.67 and the port that agents connect to is 4001.
c:>telnet 192.168.101.67 4001ping PremiTech PerformanceGuard Collector - Ping reply Connection to host lost. C:>
After Telnet has started, you need to type p and the frontend will reply to you in clear text. The frontend will terminate idle sessions after a few seconds, the exact timeout is determined by the socket-timeout parameter.
If you get this reply from the frontend server PremiTech PerformanceGuard Collector - Ping reply, the network path to the frontend server has been successfully set up.

Database Indexes Automatically Reorganized

Section titled “Database Indexes Automatically Reorganized”

Your database administrator (dba) will appreciate that the frontend server database indexes are automatically reorganized once a day, between 19.00 (7 PM) and 04.00 (4 AM) local time. The dba does thus not need to reorganize indexes himself.

The frontend server accepts parameters from a standard Java .properties file located in [PerformanceGuard installation folder]\collector\conf\config.properties.

admin-port
TypeTCP port
Default value4002
DescriptionTelnet TCP port. The port used to send administrative commands, like start and stop.
admin-role
TypeString
Default valueE2EAdministrator
DescriptionThe name of the administrator user role.
connection
TypeString
Default value
DescriptionThis is the name of the database connection to use. This name is preceding all the parameters used for the database, that is it’s possible to have multiple database setups, Setting this parameter accordingly will change which one is effective.
.user
TypeString
Default value
DescriptionThe database user name.
.password
TypeString
Default value
DescriptionPassword of the database user.
.url
TypeString
Default value
DescriptionDefines a JDBC URL used to connect to the database. For ORACLE:
1. jdbc:oracle:thin:@win2000server:1521:win2k For SQL Server:
2. jdbc:jtds:sqlserver:\\win2000server;instance=win2000
.maxcom
TypeInteger
Default value
DescriptionDefines the maximum number of connection that the collector should make to the backend database.
log-configfile
TypeString
Default value
DescriptionSpecifies where to find the file that defines the logging levels etc for the collector. The config file follows the java.util.logging format as described in: {*}http://java.sun.com/j2se/1.4/docs/api/index.html*
max-threads
TypeInteger
Default value
DescriptionThe maximum number of threads that the collector should create in order to service the agents.
min-threads
TypeInteger
Default value
DescriptionThe maximum number of threads that the collector should create in order to service the agents.
.port
TypeInteger between 1024 and 65535
Default value
DescriptionThe port where agents should connect and deliver reports. Make sure that this port isn’t used by any other application. Prior to starting the collector service you can check e.g. using netstat if the port is in use. Configuring the collector to run on an already used port means that the data from the agents are aimed at the application that first requested to service the port. As there is no acknowledgment from the collector when data is send to the collector, agents may be fooled into thinking that they have actually delivered data to a collector, and indicate that they have successfully delivered data to the backend.
socket-timeout
TypeInteger
Default value
DescriptionSpecifies in milliseconds, how long the collector should wait for receiving a complete packet from the agent before disconnecting.
backend.port
TypeTCP port
Default value
DescriptionSpecifies on which port to contact the backend server.
backend.hostname
TypeString
Default valuelocalhost
DescriptionSpecifies the hostname of the backend server.
backend.connections
TypeInteger
Default value10
DescriptionSpecifies the number of socket connection from the frontend server to the backend server.
backend.timeout
TypeString
Default value9000
DescriptionSocket-timeout for the connection to the backend server.
customcounter.fileperiod
TypeInteger
Default value300
DescriptionSpecifies in seconds, how often a new spool file will be created. If the period is set to below 300, then the default will be used.
customcounter.filedir
TypeString
Default valueReportFileStore
DescriptionSpecifies the default folder that’ll be created for spool files. To change the path, this format should be used - c:\Test ReportFileStore. If the path isn’t set, then the default folder will be created relative to the frontend server. Sizing considerations: 1000 Agents 10 Counters measured using the 300 seconds, that is the default period of each created spool files. Generates: Approx. 1440 files in 5 days (before being removed) Each file uses approx. 45 MB. For a total of approx 65 GB.

The frontend server spool files folder, [PerformanceGuard installation folder]\collector\spooler, contains files consisting of the buffers of data that the frontend server receives from PerformanceGuard agents.

When agents send reports to a frontend server, the frontend server stores them in an internal buffer in memory. Periodically, these buffers get written (or spooled) to the disk, then read from the disk and sent to the backend server. The purpose of this is to avoid data loss in case the frontend server or backend server becomes unavailable.

There are three speeds with which the buffers can get spooled:

  • High: Time since the last buffer write to disk is more than 20 seconds, or there is more than 300 KB of data in the buffer
  • Medium: Time since the last buffer write to disk is more than 120 seconds, or there is more than 300 KB of data in the buffer
  • Low: Time since the last buffer write to disk is more than 180 seconds, or there is more than 3 MB of data in the buffer

The following spoolers exist:

  • 8 default spoolers with spooling speed medium
  • 4 aggr_ip spoolers with spooling speed high
  • 4 aggr_ip_process spoolers with spooling speed high
  • 2 aggr spoolers with spooling speed high
  • 4 fast spoolers with spooling speed high
  • 1 chunk spooler with spooling speed low
  • 1 trace spooler with spooling speed medium
  • 1 events spooler with spooling speed high

PerformanceGuard uses parallel spoolers to reduce lock contention and to increase the number of simultaneous file transmissions to the backend server.