Working with Rules

The Foglight for SAP HANA cartridge includes a set of predefined rules summarized below. You can change default threshold values or scope them to specific settings, typically through registry variables. These rules can be copied, modified, disabled, or customized in various ways. For more information, refer to the Foglight documentation or contact Quest Software PSO.

This section covers the following rules:


SAP HANA Blocked Transaction

Alerts if a Blocked Transaction wait time is high.


SAP HANA Database Availability

Alerts if the SAP HANA database becomes unreachable.


SAP HANA Expensive Statement

Alerts if an Expensive Statement has high CPU time, memory usage, or duration.


SAP HANA Host CPU Used Percent

Alerts if CPU utilization on the host is high.


SAP HANA Memory Instance Allocation Used Percent

Alerts if the memory used by an instance as a percentage of its allocation limit is too high.


SAP HANA Memory Used Physical Memory Percent

Alerts if the physical memory usage is too high.


SAP HANA Native Alert

Publishes SAP HANA native alerts to Foglight.


SAP HANA Service Used Memory Effective Allocation Percent

Alerts if the service’s usage of its effective memory allocation is too high.


SAP HANA SQL Plan Averages

Alerts if a SQL plan’s average execution time or average memory utilization is high.


SAP HANA SQL Plan Totals

Alerts if a SQL plan’s execution rate or total percentage of time executing has been high.


SAP HANA System Availability

Alerts if the SAP HANA System becomes unreachable through the system database.


SAP HANA Table AutoMerge

Alerts if automatic delta table merges are not activated for the below table.


SAP HANA Table Delta Main Ratio

Alerts if the ratio of a table’s delta memory to main memory is high.


SAP HANA Table Delta Size

Alerts if a table’s delta memory is large.


SAP HANA Table History

Alerts if a history table is found on the database.


SAP HANA Table Logging

Alerts if logging for a table was not on at last restart time.


SAP HANA Table Persistent

Alerts if a table’s persistent memory preference is inconsistent or changes.


SAP HANA Volume Used Disk Percent

Alerts if the percentage of disk used on a volume is too high.


Internal statistics server problem

Identifies internal statistics server problem.


Host physical memory usage

Determines what percentage of total physical memory available on the host is used. All processes consuming memory are considered, including non-SAP HANA processes.


Disk usage

Determines what percentage of each disk containing data, log, and trace files is used. This includes space used by non-SAP HANA files.


Inactive services

Identifies inactive services.


Restarted services

Identifies services that have restarted since the last time the check was performed.


Host CPU Usage

Determines the percentage CPU idle time on the host and whether or not CPU resources are running low.


Delta merge (mergedog) configuration

Determines whether or not the ‘active’ parameter in the ‘mergedog’ section of the system configuration file(s) is ‘yes.’ mergedog is the system process that periodically checks column tables to determine whether or not a delta merge operation should be executed.


Memory usage of name server

Determines what percentage of allocated shared memory is being used by the name server on a host.


Lock wait timeout configuration

Determines whether the ’lock_wait_timeout’ parameter in the ’transaction’ section of the indexserver.ini file is between 100,000 and 7,200,000.


Record count of non-partitioned column-store tables

Determines the number of records in non-partitioned column-store tables. Current table size may not be critical. Partitioning need only be considered if tables are expected to grow rapidly (a non-partitioned table cannot contain more than 2,147,483,648 (2 billion) rows).


Table growth of non-partitioned column-store tables

Determines the growth rate of non-partitioned columns tables.


Internal event

Identifies internal database events.


Notification of all alerts

Determines whether or not there have been any alerts since the last check and if so, sends a summary e-mail to specified recipients.


Notification of medium and high priority alerts

Determines whether or not there have been any medium and high priority alerts since the last check and if so, sends a summary e-mail to specified recipients.


Notification of high priority alerts

Determines whether or not there have been any high priority alerts since the last check and if so, sends a summary e-mail to specified recipients.


Open connections

Determines what percentage of the maximum number of permitted SQL connections are open. The maximum number of permitted connections is configured in the “session” section of the indexserver.ini file.


Unassigned volumes

Identifies volumes that are not assigned a service.


Record count of column-store table partitions

Determines the number of records in the partitions of column-store tables. A table partition cannot contain more than 2,147,483,648 (2 billion) rows.


Most recent savepoint operation

Determines how long ago the last savepoint was defined, that is, how long ago a complete, consistent image of the database was persisted to disk.


Size of delta storage of column-store tables

Determines the size of the delta storage of column tables.


Check internal disk full event

Determines whether or not the disks to which data and log files are written are full. A disk-full event causes your database to stop and must be resolved.


License expiry

Determines how many days until your license expires. Once your license expires, you can no longer use the system, except to install a new license.


Log mode LEGACY

Determines whether or not the database is running in log mode “legacy.” Log mode “legacy” does not support point-in-recovery and is not recommended for production systems.


Log mode OVERWRITE

Determines whether or not the database is running in log mode “overwrite”. Log mode “overwrite” does not support point-in-recovery (only recovery to a data backup) and is not recommended for production systems.


Unavailable volumes

Determines whether or not all volumes are available.


Existence of data backup

Determines whether or not a data backup exists. Without a data backup, your database cannot be recovered.


Status of most recent data backup

Determines whether or not the most recent data backup was successful.


Age of most recent data backup

Determines the age of the most recent successful data backup.


Status of most recent log backups

Determines whether or not the most recent log backups for services and volumes were successful.


Long-running statements

Identifies long-running SQL statements.


Total memory usage of column-store tables

Determines what percentage of the effective allocation limit is being consumed by individual column-store tables as a whole (that is, the cumulative size of all of a table’s columns and internal structures)


In-memory DataStore activation

Determines whether or not there is a problem with the activation of an in-memory DataStore object.


Long running/idling cursors

Identifies long-running/idling cursors. The threshold is based on M_INIFILE_CONTENTS.VALUE where KEY = “idle_cursor_lifetime”.


Memory usage of services

Determines what percentage of its effective allocation limit a service is using.


Licensed memory usage

Determines what percentage of licensed memory is used.


Memory usage of main storage of column-store tables

Determines what percentage of the effective allocation limit is being consumed by the main storage of individual column-store tables.


RTEdump files

Identifies new runtime dump files (*rtedump*) have been generated in the trace directory of the system. These contain information about, for example, build, loaded modules, running threads, CPU, and so on.


Long-running serializable transactions

Identifies long-running serializable transactions.


Long-running uncommitted write transactions

Identifies long-running uncommitted write transactions.


Long-running blocking situations

Identifies long-running blocking situations.


Number of diagnosis files

Determines the number of diagnosis files written by the system (excluding zip-files). An unusually large number of files can indicate a problem with the database (for example, a problem with trace file rotation or a high number of crashes).


Size of diagnosis files

Identifies large diagnosis files. Unusually large files can indicate a problem with the database.


Crashdump files

Identifies new crashdump files that have been generated in the trace directory of the system.


Pagedump files

Identifies new pagedump files that have been generated in the trace directory of the system.


Savepoint duration

Identifies long-running savepoint operations.


Columnstore unloads

Determines how many columns in columnstore tables have been unloaded from memory. This can indicate performance issues.


Python trace activity

Determines whether or not the python trace is active and for how long. The python trace affects system performance.


Instance secure store file system (SSFS) inaccessible

Determines if the instance secure store in the file system (SSFS) of your SAP HANA system is accessible to the database.


Plan cache size

Determines whether or not the plan cache is too small.


Percentage of transactions blocked

Determines the percentage of transactions that are blocked.


Sync/Async read ratio

Identifies a bad trigger asynchronous read ratio. This means that asynchronous reads are blocking and behave almost like synchronous reads. This might have negative impact on SAP HANA I/O performance in certain scenarios.


Sync/Async write ratio

Identifies a bad trigger asynchronous write ratio. This means that asynchronous writes are blocking and behave almost like synchronous writes. This might have negative impact on SAP HANA I/O performance in certain scenarios.


Expiration of database user passwords

Identifies database users whose password is due to expire in line with the configured password policy. If the password expires, the user will be locked. If the user in question is a technical user, this may impact application availability. It is recommended that you disable the password lifetime check of technical users so that their password never expires (ALTER USER <username> DISABLE PASSWORD LIFETIME).


Granting of SAP_INTERNAL_HANA_SUPPORT role

Determines if the internal support role (SAP_INTERNAL_HANA_SUPPORT) is currently granted to any database users.


Total memory usage of table-based audit log

Determines what percentage of the effective memory allocation limit is being consumed by the database table used for table-based audit logging. If this table grows too large, the availability of the database could be impacted.


Runtime of the log backups currently running

Determines whether or not the most recent log backup terminates in the given time.


Storage snapshot is prepared

Determines whether or not the period, during which the database is prepared for a storage snapshot, exceeds a given threshold.


Table growth of rowstore tables

Determines the growth rate of rowstore tables


Total memory usage of row store

Determines the current memory size of a row store used by a service


Enablement of automatic log backup

Determines whether automatic log backup is enabled.


Consistency of internal system components after system upgrade

Verifies the consistency of schemas and tables in internal system components (for example, the repository) after a system upgrade.


Row store fragmentation

Check for fragmentation of row store.


Number of log segments

Determines the number of log segments in the log volume of each serviceCheck for number of log segments.


Overflow of rowstore version space

Determines the overflow ratio of the rowstore version space.


Overflow of metadata version space

Determines the overflow ratio of the metadata version space.


Rowstore version space skew

Determines whether the rowstore version chain is too long.


Discrepancy between host server times

Identifies discrepancies between the server times of hosts in a scale-out system.


Database disk usage

Determines the total used disk space of the database. All data, logs, traces and backups are considered.


Connection between systems in system replication setup

Identifies closed connections between the primary system and a secondary system. If connections are closed, the primary system is no longer being replicated.


Configuration consistency of systems in system replication setup

Identifies configuration parameters that do not have the same value on the primary system and a secondary system. Most configuration parameters should have the same value on both systems because the secondary system has to take over in the event of a disaster.


Availability of table replication

Monitors error messages related to table replication.


Cached view size

Determines how much memory is occupied by cached view


Timezone conversion

Compares SAP HANA internal timezone conversion with Operating System timezone conversion.


Table consistency

Identifies the number of errors and affected tables detected by _SYS_STATISTICS.Collector_Global_Table_Consistency.


Insecure instance SSFS encryption configuration

Determines whether the master key of the instance secure store in the file system (SSFS) of your SAP HANA system has been changed. If the SSFS master key is not changed after installation, it cannot be guaranteed that the initial key is unique.


Insecure systemPKI SSFS encryption configuration

Determines whether the master key of the secure store in the file system (SSFS) of your system’s internal public key infrastructure (system PKI) has been changed. If the SSFS master key is not changed after installation, it cannot be guaranteed that the initial key is unique.


Internal communication is configured too openly

Determines whether the ports used by SAP HANA for internal communication are securely configured. If the “listeninterface” property in the “communication” section of the global.ini file does not have the value “.local” for single-host systems and “.all” or “.global” for multiple-host systems, internal communication channels are externally exploitable.


Granting of SAP HANA DI support privileges

Determines if support privileges for the SAP HANA Deployment Infrastructure (DI) are currently granted to any database users or roles.


Auto merge for column-store tables

Determines if the delta merge of a table was executed successfully or not.


Missing volume files

Determines if there is any volume file missing.


Status of HANA platform lifecycle management configuration

Determines if the system was not installed/updated with the SAP HANA Database Lifecycle Manager (HDBLCM).


Plan cache hit ratio

Determines whether or not the plan cache hit ratio is too low.


Root keys of persistent services are not properly synchronized

Not all services that persist data could be reached the last time the root key change of the data volume encryption service was changed. As a result, at least one service is running with an old root key.


Streaming License expiry

Determines how many days until your streaming license expires. Once your license expires, you can no longer start streaming projects.


Log replay backlog for system replication secondary

System Replication secondary site has a higher log replay backlog than expected.


Availability of Data Quality reference data (directory files)

Determine the Data Quality reference data expiration dates.


Long-running tasks

Identifies all long-running tasks.


Granting of SAP HANA DI container import privileges

Determines if the container import feature of the SAP HANA Deployment Infrastructure (DI) is enabled and if import privileges for SAP HANA DI containers are currently granted to any database users or roles.


LOB garbage collection activity

Determines whether or not the lob garbage collection is activated.


HANA version

Checks the installed HANA version.


Unsupported operating system in use

Determines if the operating system of the SAP HANA Database hosts is supported.


SQL access for SAP HANA DI technical users

Determines if SQL access has been enabled for any SAP HANA DI technical users. SAP HANA DI technical users are either users whose names start with ‘_SYS_DI’ or SAP HANA DI container technical users (<container name>, <container name>#DI, <container name>#OO).


Existence of system database backup

Determines whether or not a system database backup exists. Without a system database backup, your system cannot be recovered.


Usage of deprecated features

Determines if any deprecated features were used in the last interval.


Log shipping backlog for system replication secondary

System Replication secondary site has a higher log shipping backlog than expected.


Total Open Transactions Check

The check monitors the number of open transactions per service


ASYNC replication in-memory buffer overflow

Checks if local in-memory buffer in ASYNC replication mode runs full


Fallback snapshot consistency

Determines if an inconsistent fallback snapshot exist.


Fallback snapshot age

Determines if a snapshot exists for an extended period of time.


Backup history broken

If the backup history is broken, the log_mode is internally set to overwrite; it is not ensured that the service is fully recoverable via backup.


Catalog Consistency

Identifies the number of errors and affected objects detected by _SYS_STATISTICS.Collector_Global_Catalog_Consistency.


Replication status of Replication Log

Check whether the status of replication log is disabled.


Record count of non-partitioned column-store tables (include)

Determines the number of records in non-partitioned column-store tables (only include tables are checked). Current table size may not be critical. Partitioning need only be considered if tables are expected to grow rapidly (a non-partitioned table cannot contain more than 2,147,483,648 (2 billion) rows).


Record count of column-store table partitions (include)

Determines the number of records in the partitions of column-store tables (only include tables are checked). A table partition cannot contain more than 2,147,483,648 (2 billion) rows.


LDAP Enabled Users without SSL

Checks if any user is enabled for LDAP Authentication and SSL is off.


Dbspace usage

Checks for the dbspace size usage.


Dbspace status

Determines whether or not all dbspaces are available.


Dbspace file status

Determines whether or not all dbspace files are available.


Inactive Streaming applications

Identifies inactive Streaming applications.


Inactive Streaming project managed adapters

Identifies inactive Streaming project managed adapters.


Streaming project physical memory usage

Determines what percentage of total physical memory available on the host is used for the streaming project.


Streaming project CPU usage

Determines the percentage CPU usage for a streaming project on the host and therefore whether or not CPU resources are running out.


Number of publishers of streaming project

Identify the large publishers of streaming project. Make sure that they will not break the streaming project.


Number of subscribers of streaming project

Identify the large subscribers of streaming project. Make sure that they will not break the streaming project.


Row throughput of subscriber of streaming project

Identify which subscriber of streaming project has low throughput measured in rows per second.


Transaction throughput of subscriber of streaming project

Identify which subscriber of streaming project has transaction throughput measured in transactions per second.


Row throughput of publisher of streaming project

Identify which publisher of streaming project has low throughput measured in rows per second.


Transaction throughput of publisher of streaming project

Identify which publisher of streaming project has transaction throughput measured in transactions per second.


Bad rows of project managed adapter

Identify which project managed adapter has much rows with error.


High latency of project managed adapter

Identify which project managed adapter has high latency.


Large queue of stream of streaming project

Identify which stream of streaming project has large queue.


Large store of stream of streaming project

Identify which stream of streaming project has large store.


Agent availability

Determines how many minutes the agent has been inactive.


Agent memory usage

Determines what percentage of total memory available to agent is used.


Remote Subscription exception

Checks for recent exceptions in remote subscriptions and remote sources.