Geneos
Recommended Reads

Fidessa Plug-in - Technical Reference

Introduction

Geneos Fidessa plug-in monitors Fidessa service parameters to provide a comprehensive set of Fidessa monitoring facilities. It is required that each Fidessa module (e.g., CTAC, OMAR, and EMMA) be monitored by a dedicated Netprobe.

Views

The Fidessa plug-in produces six views: DB-Capacity, Infrastructure, Inventory, Processes, System, and Users.

DB-Capacity View

Monitors Fidessa in-memory database tables fill level.

fidessa-db-capacity

Headline Legend

Name Description
totalTables The total number of tables that are being monitored.
lastSampleScriptTime The time when the script was last sampled.

Table Legend

Name Description
name The name of the table.
maxRecords The maximum number of records the table has been allocated to hold.
usedRecords The number of records used.
percentageUsed The percentage of the allocated capacity being used.

See Appendix to view the script for configuring.

Infrastructure View

Shows the infrastructure details of the Fidessa component being monitored. Fidessa components include Core Application Server Environment (CASE), Order Management and Routing system (OMAR), Trade Management and Routing system (TMAR), and Position Management and consolidation system (PMAC), among others.

fidessa-infra

Table Legend

Name Description
product The name of the product.
Version The version of the product.
InfrastructureVersion The version of the infrastructure.
BuildDate The build date of the product.

Inventory View

Shows Fidessa installation inventory.

fidessa-inventory

Table Legend

Name Description
Name The name of the Fidessa component.
Release The release number of the component.
Description The description of the component.

Processes View

Shows details of the Fidessa processes.

fidessa-processes

Headline Legend

Name Description
Total_processes The total number of the Fidessa Unix processes that are being monitored.
Failed The number of processes in a failed (DOWN) state (i.e., process is not running).
Error The number of processes in an error state (i.e., process is running but has encountered some errors; line to exchange is down).
Combined_CPU_usage The total CPU usage by Fidessa processes.
Combined_memory_usage The total memory usage by Fidessa processes.

Table Legend

Name Description
Name The name of the process.
Status The status of the process (UP, DOWN or ERROR).
CPU_% The percentage of the node CPU used by the process.
Memory_(Kb) The memory used by the process, expressed in Kb.
Info Empty until a process has encountered fail or error state, then shows error information.
Description The description of the process.
Config_File The name of the configuration file used by the process.
Start_Time The start time of the process.
PID The Unix ID of the process.

System View

Shows the overall health of the Fidessa system.

fidessa-system

Table Legend

Name Description
Database_state The state of the database (DATABASE_AVAILABLE or DATABASE_UNAVAILABLE).
Default_role The configured role of the system.
Diag_1 The diagnostics for the Fidessa system.
Operator_alert_level The status of the operator alert.
Role The current role (PRIMARY or STANDBY).
Role_status The status that indicates whether the system is currently operating in default or non-default (DEFAULT if operating as configured and NON-DEFAULT if different from default configuration).
Start_mode The mode the system was started in.
Start_role The role on system start.
Start_time The time on system start.
System_name The name of the Fidessa module that is being monitored.
Transaction_state The status of a transaction made in the system.
User_alert_level The status of a user alert.

Users View

Shows details of the Fidessa users.

Note: This plug-in uses the netstat command which is part of the net-tools package. The net-tools package is not included in the minimal RHEL7 installation by default. As a result, the net-tools package must be installed separately on a minimal RHEL7 installation in order for the plug-in to work.

fidessa-users

Headline Legend

Name Description
Total_users The total number of Fidessa users.
Total_connections

The total number of Fidessa user connections.

Note: A user may have more than one connection.


Table Legend

Name Description
Name The name of the user (provided that it is defined in users.ini).
Department The department of the user (provided that it is defined in users.ini).
Workstation_name The name of the user's workstation.
Workstation_address The IP address of the user's workstation.
Send_queue The number of bytes queuing to be sent to the user.
Recv_queue The number of bytes queuing to be processed from the user.
Connection_status The status of the user connection. Healthy connection will show ESTABLISHED.

Note: A large number of bytes in Send queue and Recv queue suggests a problem with the user's connection. Typically, this should indicate close to zero.


Plug-in Configuration

It is required that each Fidessa module (e.g., CTAC, OMAR, and EMMA) be monitored by a dedicated Netprobe, installed, and running under the same UNIX account as the Fidessa module it monitors. If run as a different user monitored process, information will be incorrect.

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

userFile

Name of a file used to associate textual names with hostnames/IP addresses.

Mandatory: No
Default: users.ini

dbStateCommand

Command to run to determine the state of the database (not recommended to change).

Mandatory: No
Default: ExecTclProc Fid_DatabaseState

logDir

Full path to the directory containing the Fidessa process log files.

Note: Use $(FIDESSA_DIR)/log to pick up the component specific paths defined in their respective variables from Types, Managed Entities, etc.

Mandatory: Yes

command

Main monitoring command (not recommended to change).

Mandatory: No
Default: mon lprocs

systemRoleCommand

Command to determine the system role (not recommended to change).

Mandatory: No
Default: ExecTclProc -notrace Fid_SystemRole

processFilePostfix

From Fidessa v5, process log files are named <PROC_NAME>.dat. In this case, set PROC_FILE_POSTFIX to .dat.

Mandatory: No
Default: blank

netstatCommand

Command to examine TCP/IP connections (not recommended to change).

Mandatory: No
Default: netstat

releaseCfgFilename

Configuration file that defines the contents of the Infrastructure view.

Mandatory: No

remotePorts

Defines the list of tokens that will identify the remote address of a TCP/IP connection as a user.

This parameter is optional but mutually exclusive with the localPorts parameter.

Mandatory: No

localPorts

Defines the list of tokens that will identify the local address of a TCP/IP connection as a user.

This parameter is optional but mutually exclusive with the remotePorts parameter.

Mandatory: No

dbCapacity

Database capacity settings.

dbCapacity > script

A TCL script that defines the database size.

Mandatory: No

dbCapacity > interval

Number of seconds between executing the database capacity script.

Mandatory: No
Default: 900 (15 minutes)

dbCapacity > includeTables

List of tables with no maximum number of records (-1) which the user wishes to be shown. Tables with no maximum number of records are not shown by default.

Mandatory: No

dbCapacity > includeTables > data > includeTable

A table with no maximum number of records (-1) which the user wishes to be shown. Tables with no maximum number of records are not shown by default. Since there is no maximum, a percentage used cannot be shown. Specifying include tables which don't exist will not result in additional rows being shown. Expect Rows should be used as normal if the user needs to ensure that a table exists.

Mandatory: No

disableUserView

Boolean. Disables the Users view.

Mandatory: No
Default: False

users.ini file

The file contains one line per user as in the following example:

USER=Tom Masters, DEPARTMENT=EQUITIES, HOSTNAME=ws1, HOSTIP=134.33.45.123
USER=David Florian, DEPARTMENT=EQUITIES, HOSTNAME=ws2, HOSTIP=134.33.45.124
USER=Sarah Harrison, DEPARTMENT=EQUITIES, HOSTNAME=ws2, HOSTIP=134.33.45.124

If frequent movement of users makes it impractical to maintain the username, then the username can be made the same as the workstation name or IP address and only the department field used.

When a user is looked up in the file, the match is made on the hostname or IP address, so one of the fields present is sufficient.

Appendix

Scripts

#!/bin/csh
#
# ***********************************************************
# (C) GENEOS 2009
#
# Description: This scripts reads the RTD and outputs the table sizes.
#
# Note: The top line of this script has to be updated to point to
#       the relevant tclsh for each install.
#
# Created by: ITRS
# Created on: 1 July 2002
#
# Changes:
# YYYY/MM/DD - NAME - Description
# 2009/04/17 - Chris Davies - modified to prevent potential locking issue
#                             the script now writes its output to a file and
#                             reads the file back which will prevent issues
#                             if the DB is not available.
# ***********************************************************
#
# \
# change to directory containing the script \
cd `dirname $0`

# restarts using tclsh \
exec tclsh `basename $0` $*
#

set env(FID_TRACE_ENABLE) ""

if { $argv == "-output" } {

        package require "FidGeneral"
        package require "FidServerState"
        package require "FidProcessTable"

        package require "FidTcl"

        Fid_LoadProcessTable
        Fid_LoadOSProcessMap
        Fid_StoreServerDetails

        Fid_Oa initialise DB_CAPACITY
        set role PRIMARY
        set role [Fid_SystemRole]

        if { $role != "PRIMARY" && $role != "STANDBY" } {
                exit 0
        }

        Fid_Db loaddct
        Fid_Db opentables

        foreach el [Fid_Db info records] {

                set a [Fid_Db info record $el QUANTITY]
                set b [Fid_Db counttable $el]
                puts "$el = $a $b"

        }

} else {

        set fd [ open "|FidessaDbCapacity.tcl -output" r ]

        if { $fd == "" } { exit 1 }

        set output "";

        set line [gets $fd]

        while { $line != "" } {

           append output "$line\n"

           set line [gets $fd]

        }

        close $fd

        puts $output

}