Monitoring InterSystems IRIS Using the Management Portal
You can monitor many aspects of your InterSystems IRIS® data platform instance starting at the System Dashboard of the Management Portal. From the dashboard you can view performance indicators and then, for selected indicators, navigate to more detailed information.
For an overview of general InterSystems IRIS monitoring tools, see System Monitoring Tools.
To access the System Operation tools described on this page, a user must be a member of a role with privileges to the %Admin_Operate resource. For more information, refer to this section of our guide to using the Management Portal.
Monitoring System Dashboard Indicators
The System Operation > System Dashboard page of the Management Portal groups the status of key system performance indicators into the following categories. Each category is described in one of the tables that follow.
In most cases, you can click an indicator listed in one of these categories to display a description of the indicator in the bottom detail box at the lower left corner of the page.
|Globals/Second||Most recently measured number of global references per second.|
|Global Refs||Number of global references since system startup.|
|Global Sets||Number of global Set and Kill operations since system startup.|
|Routine Refs||Number of routine loads and saves since system startup.|
|Logical Requests||Number of logical block requests since system startup.|
|Disk Reads||Number of physical block read operations since system startup.|
|Disk Writes||Number of physical block write operations since system startup.|
|Cache Efficiency||Most recently measured cache efficiency (Global references / (physical reads + writes)).|
Click the ... more details link in the bottom detail box to display the System Operation > System Usage page. See the Monitoring System Performance section for details.
|Application Servers||Summary status of ECP (Enterprise Cache Protocol) application servers connected to this system.|
|Application Server Traffic||Most recently measured ECP application server traffic in bytes per second.|
|Data Servers||Summary status of ECP data servers to which this system is connected.|
|Data Server Traffic||Most recently measured ECP data server traffic in bytes per second.|
For more information on the ECP indicators, see the “Horizontally Scaling Systems for User Volume with InterSystems Distributed Caching” chapter of the Scalability Guide.
|System Up Time||Elapsed time since this system was started.|
|Last Backup||Date and time of last system backup.|
You can run backups or view the backup history from the System Operation > Backup page. For more information on developing a backup plan, see the “Backup and Restore” chapter of the Data Integrity Guide.
|Database Space||Indicates whether there is a reasonable amount of disk space available for database files. Clicking ... more details displays the System Operation > Databases page.|
|Database Journal||Indicates the current status of the database journal. Clicking ... more details displays the System Operation > Journals page.|
|Journal Space||Indicates whether there is a reasonable amount of disk space available for journal files. Clicking ... more details displays the System Operation > Journals page.|
|Journal Entries||Number of entries written to the system journal. Clicking ... more details displays the System Operation > Journals page.|
|Lock Table||Current status of the system Lock Table. Clicking ... more details displays the System Operation > Locks > Manage Locks page.|
|Write Daemon||Current status of the system Write daemon.|
|Transactions||Current status of open local and remote (ECP) transactions. If there are no open transactions, status is Normal; status may also be Warning (if the duration of the longest open local or remote transaction is greater than 10 minutes) and Troubled (if greater than 20 minutes). Clicking ... more details displays the Transactions page.|
|Processes||Most recent number of running processes. Clicking ... more details displays the Processes page (System Operation > Processes).|
|Web Sessions||Most recent number of web sessions. Clicking ... more details displays the Web Sessions page (System Operation > Web Sessions).|
|Most Active Processes||Running processes with highest amount of activity (number of commands executed). Clicking ... more details displays the Processes page (System Operation > Processes).|
For more information on any of these topics, click the Help link on the Portal page displayed when you click the ... more details link.
|Serious Alerts||Number of serious alerts that have been raised. Clicking ... more details displays the View Messages Log page (System Operation > System Logs > Messages Log).|
|Application Errors||Number of application errors that have been logged. Clicking ... more details displays the View Application Error Log page (System Operation > System Logs > Application Error Log).|
See the Monitoring Log Files section in this chapter for more details.
|License Limit||Maximum allowed license units for this system.|
|Current License Use||License usage as a percentage of available license units.|
|Highest License Use||Highest license usage as a percentage of available license units.|
Click the ... more details link in the bottom details box to display the System Operation > License Usage page. For more information on licensing, see the “Managing InterSystems IRIS Licenses” chapter of the System Administration Guide.
|Upcoming Tasks||Lists the next five tasks scheduled to run.|
|Task||Name of the upcoming task.|
|Time||Time the task is scheduled to run.|
|Status||Task status—one of: scheduled, completed, running.|
Click the ... more details link in the bottom details box to display the System Operation > Task Manager > Upcoming Tasks page. For details on the Task Manager, see the Using the Task Manager section of the “Managing InterSystems IRIS” chapter of the System Administration Guide.
Monitoring System Usage and Performance
System performance metrics are described in the following tables:
System Usage Table
To view the system usage statistics, navigate to the System Usage page (System Operation > System Usage).
|Global references (all)||Logical count of accesses to globals, including Sets, Kills, $Data, $Order, $Increment, $Query, and global references in expressions.|
|Global update references||Logical count of global references that are Set, Kill, or $Increment operations.|
|Routine calls||Number of calls to a routine.|
|Routine buffer loads and saves||Total number of routine loads and saves as a result of ZLoad, ZSave, and running routines. (In a well-tuned environment, this number increases slowly, since most routine loads are satisfied by the routine cache memory without accessing the disk. Each routine load or save transfers up to 32 KB of data (64 KB for Unicode).)|
|Logical block requests||Number of database blocks read by the globals database code. (In a well-tuned environment, many of these reads are satisfied without disk access.)|
|Block reads||Number of physical database blocks read from disk for both global and routine references.|
|Block writes||Number of physical database blocks written to disk for both global and routine references.|
|WIJ writes||Number of blocks written to the write image journal file.|
|Journal entries||Number of journal records created—one for each database modification (Set , Kill, etc.) or transaction event (TStart, TCommit) or other event that is saved to the journal.|
|Journal block writes||Number of 64-KB journal blocks written to the journal file.|
|Routine lines||Number of routine lines executed since system startup.|
|Last update||Date and time stamp of the displayed statistics.|
See the “Gathering Global Activity Statistics with ^GLOSTAT” chapter for an alternative method of monitoring these statistics.
Shared Memory Heap Usage
To view the InterSystems IRIS’s shared memory heap (gmheap) usage, navigate to the System Usage page (System Operation > System Usage), and click the Shared Memory Heap Usage link.
To learn how to change the size of the shared memory heap (gmheap), see the Changing This Parameter section of the “gmheap” entry in Configuration Parameter File Reference.
The column headings in the table on this page refer to the following:
Description — Purpose for which shared memory is allocated.
Allocated SMH/ST — Total shared memory heap (gmheap) and string table memory allocated to the purpose.
SMH/ST Available — Shared memory heap (gmheap) and string table memory allocated to the purpose that is still available.
SMH/ST Used — Shared memory heap (gmheap) and string table memory allocated to the purpose that is in use.
SMT Used — Static memory table memory in use by the purpose.
GST Used — General string table memory in use by the purpose.
All Used — Total combined memory in use by the purpose.
|Miscellaneous||Shared memory allocated for the static memory table (SMT) and general string table (GST).|
|Audit System||Shared memory used for system auditing.|
|Classes Instantiated||Shared memory allocated/available/used for the class hash table and control blocks.|
|Database Encryption Key Change||Shared memory allocated/available/used for database encryption key changes.|
|Semaphore Objects||Shared memory allocated/available/used for semaphore objects.|
|Event System||Shared memory allocated/available/used for the event system.|
|Global Mapping||Shared memory allocated/available/used for global mapping and subscript-level mapping (SLM).|
|License Upgrade||Shared memory allocated/available/used for license upgrades.|
|Lock Table||Shared memory allocated/available/used for the lock system.|
|National Language Support||Shared memory allocated/available/used for National Language Support (NLS) tables.|
|Performance Monitor||Shared memory allocated/available/used for the Performance Monitor (^PERFMON).|
|Process Table||Shared memory allocated/available/used for the Process ID (PID) table.|
|Routine Buffer in Use Table||Shared memory allocated/available/used for routine buffer-in-use tables.|
|Security System||Shared memory allocated/available/used for the security system.|
|Shared Library||Shared memory allocated/available/used for shared libraries.|
|TTY Hash Table||Shared memory allocated/available/used for TTY hash tables.|
|DB Name & Directory||Shared memory allocated/available/used for database names and directories.|
|iKnow Language Model Data||Shared memory allocated/available/used for iKnow language models.|
|ECP||Shared memory allocated/available/used for ECP.|
|Expand Daemon||Shared memory allocated/available/used for expanding daemons.|
Total memory for each column.
Hover over the column headings for a description of each column.
|Available SMT & GST||Available memory in the static memory table (SMT) and general string table (GST).|
|Total SMT & GST Allocated||Total used and available memory in the static memory table (SMT) and general string table (GST).|
|Total SMH Pages Allocated||Total directly allocated shared memory heap (SMH) and string table allocated Shared memory, together with the total used/available memory in the static memory table (SMT) and the general string table (GST); the number of 64-KB pages is displayed parenthetically.|
Monitoring SQL Activity
To inspect the SQL statements currently running on your IRIS system, navigate to the SQL Activity page (System Operation > SQL Activity). This page provides a table with the following information about each active SQL statement:
the Process ID associated with it
the ID of the User executing it
the Namespace containing the table or tables which the statement is querying
the statement’s Type (e.g. DynamicQuery for a Dynamic SQL query)
the Elapsed time since the statement began its execution
an excerpt from the text of the Statement itself.
Selecting any of the rows in this table reveals two further tables, which provide the following additional details about the corresponding SQL statement:
|Process||The ID of the process associated with the statement. This field links to the Process Details page for this process.|
|Transaction?||Whether or not the statement is active as part of an SQL transaction.|
|Start time||The time at which the statement began its execution.|
|Parameters||Where applicable, the first ten parameters that the statement is acting upon. For a Dynamic SQL query, this is a list of the literal values input as parameters into the query, replacing occurrences of the “?” character in the order listed. For commands such as INSERT or UPDATE, this is a list of values for the fields being inserted or updated for a record.|
|Statement||The full text of the statement. Where applicable, this field also includes a link to the SQL Statement Details page for this statement.|
|Cached Query||Where applicable, the name of the routine within which the statement is cached.|
|Row label||Value (overall and over the last week)|
|Times executed||The number of times the statement has been executed.|
|Average rowcount||The average number of rows the statement has returned upon each execution.|
|Average runtime||The average runtime for this statement.|
|Standard deviation||A measure of the degree of variation in runtimes for executions of the statement over the given interval.|
InterSystems IRIS locks are created when an InterSystems IRIS process issues a LOCK command on an ObjectScript local variable or global variable, as long as the entity is not already locked by another process. Entities need not exist in the database to lock them. The article Locking and Concurrency Control discusses InterSystems IRIS locks in detail.
To display locks system-wide, navigate to the View Locks page (System Operation > Locks > View Locks). To delete selected locks system-wide, navigate to the Manage Locks page (System Operation > Locks > Manage Locks). In both cases, the displayed lock table lists one row for each held lock and for each waiting lock request, identifying the owner. A single row may identify multiple locks held by an owner on the same entity. For example, holding an incremented lock or holding both a Shared lock and an Exclusive lock. If more than one process holds a lock on the same entity, each owner has its own row.
The Lock Table has the following column entries:
|Owner||The process ID of the process holding or waiting for the lock. Contains the client system name if it is a remote lock.|
|ModeCount||Lock mode and lock increment count. If the lock count is 1 the count is not displayed. For a list of ModeCount values, refer to the “Lock Management” chapter of Using ObjectScript.|
|Reference||Lock reference string of the lock item (does not include the database name).|
|Directory||The database location of the lock item.|
|System||The system name of where the lock is located, if it is the local system the column is blank.|
|Routine||The routine line currently being executed by the process holding or waiting for the lock.|
|Remove||Manage Locks only: If this lock is removable, this option along with the Remove all locks for process option (for local locks) or the Remove all locks from remote client option (for remote locks) appears in the row. Click the appropriate option to remove the lock. remove all locks for the process, or remove all locks from the remote client. If a lock you are removing is part of an open transaction, you are warned before confirming the removal.|
In most cases, the only time you need to remove locks is as a result of an application problem.
For a more in-depth description of the LOCK command and its features, see the LOCK entry of the ObjectScript Reference.
You may need to enlarge the size of the lock table if your system uses a large number of locks. You can do this using the Management Portal; for instructions, see the locksiz entry in Configuration Parameter File Reference.
For more detailed information and alternative ways to manage locks, see the “Lock Management” chapter of Using ObjectScript.
Monitoring InterSystems IRIS Logs
InterSystems IRIS provides the following logs for monitoring various aspects of its operation:
Several log files are available in the install-dir\mgr directory; two can be viewed using the Management Portal.
You can view the application error log or xDBC error log using the Management Portal
The contents of the InterSystems IRIS system error log, or syslog, can be reviewed using one of several methods.
You can also enable structured logging, which will write the same messages seen in messages.log to a machine-readable file that can be ingested by your choice of monitoring tool. See the article “Setting Up Structured Logging.”
Log Files in the install-dir\mgr Directory
The following log files are available in the install-dir\mgr directory. They are saved as plain text files and can be viewed using any text editor or viewer. The messages log and System Monitor log can be viewed using the Management Portal.
Log Monitor scans the messages log at regular intervals for entries of the configured minimum severity and generates corresponding notifications, which it writes to the alerts log, install-dir\mgr\alerts.log, by default. Log Monitor can be configured to send email notifications instead; see the “Using Log Monitor” chapter of this guide for more information.
The initialization log, iboot.log, contains information about the initialization of the InterSystems IRIS instance.
The journal history log, journal.log, contains a list of all journal files maintained by the InterSystems IRIS instance and is used by all journal-related functions, utilities, and APIs to locate journal files. See the “Journaling” chapter of the Data Integrity Guide for information about journaling.
InterSystems IRIS reports a variety of messages to the messages log file (messages.log), including: general messages; startup/shutdown, license, and network errors; certain operating system errors; and the success or failure of jobs started remotely from other systems. System Monitor also writes notifications to the messages log. The directory for messages.log can be configured (see console in the Configuration Parameter File Reference), but the default location is install-dir\mgr.
On Windows-based platforms, all console messages are sent to the messages log file, messages.log. On UNIX®/Linux platforms, you can configure console messages to be sent to the messages log file, the console terminal, or both.
The size of the messages.log file is monitored by System Monitor. The file grows until it reaches the configured maximum size, at which point InterSystems IRIS saves the file and starts a new one. See MaxConsoleLogSize in the Configuration Parameter File Reference for information about configuring the maximum messages log size.
You can view the messages log from the View Messages Log page of the Management Portal (System Operation > System Logs > Messages Log). If the messages log is larger than 1 MB, only the most recent 1 MB portion is displayed by the Management Portal. Click the Show entire file link to display the entire file, which may require some time if the file is very large.
If you have trouble starting InterSystems IRIS, use any text editor or text viewer to view the messages log.
Status messages about the functioning of System Monitor (see the chapter “Using System Monitor” in this guide) are written to the System Monitor log, install-dir\mgr\SystemMonitor.log.
The size of the SystemMonitor.log file is monitored by System Monitor. The file grows until it reaches the maximum size of 5 MB, at which point it is renamed to SystemMonitor.log.old, overwriting any existing SystemMonitor.log.old file, and a new SystemMonitor.log is created. The maximum number of megabytes used by the System Monitor log is therefore 10 MB.
You can view the messages log from the System Monitor Log page of the Management Portal (System Operation > System Logs > System Monitor Log). If the System Monitor log is larger than 1 MB, only the most recent 1 MB portion is displayed by the Management Portal. Click the Show entire file link to display the entire file, which may require some time if the file is very large.
Application and xDBC Error Logs
The View Application Error Log page (System Operation > System Logs > Application Error Log) allows you to view application errors.
Likewise, the xDBC Error Log page (System Operation > System Logs > xDBC Error Log) allows you to view ODBC and JDBC errors.
InterSystems IRIS System Error Log
InterSystems IRIS sets aside a small portion of its shared memory to log items of interest. This table, which can contain important diagnostic information, is referred to by several different names, including the InterSystems IRIS system error log, errlog, SYSLOG, and the syslog table.
By default, the system error log contains the 500 most recent log items. For information about configuring the number of items in the system error log, see errlog in Configuration Parameter File Reference.
To view the system error log, choose one of the following methods:
Open the Terminal, enter set $namespace = "%SYS" to switch to the %SYS namespace, and enter do ^SYSLOG. You can also enter do FILTER^SYSLOG, which has options to limit the output based on specific error codes or process ID.
Run a diagnostic report, as described in the “Using the Diagnostic Report” chapter of this guide.
Run the irisstat command with the –e1 option, as described in Running irisstat with Options in the “Monitoring InterSystems IRIS Using the irisstat Utility” appendix of this guide.
Run the IRISHung script, as described in IRISHung Script in the “Monitoring InterSystems IRIS Using the irisstat Utility” appendix.
You can configure InterSystems IRIS to write the system error log to the messages log during shutdown using the ShutDownLogErrors setting (see ShutDownLogErrors in Configuration Parameter File Reference).