Extend the platform,
empower your team.
2.0 remote extension that collects data from the InterSystems IRIS APIs.
ExtensionGain insights into the performance of your InterSystems IRIS instances. View metrics and events in context with your OneAgent collected data in the Dynatrace UI. Make use of powerful charting and dashboarding features. Allow the Davis® AI causation engine to generate baselines and alert you when anomalies are detected in designated metrics.
Connects to and collects data from the InterSystems IRIS REST API.
An InterSystems IRIS overview dashboard is included with the extension. This includes links to access the IRIS instance entities detected.
Metrics are associated with different feature sets that can be enabled or disabled as needed. Metrics will be collected once per minute.
Cannot be disabled.
Number of currently active web session IDs on this server
Note: this feature set will also cause alerts on the alerts API endpoint to be reported in Dynatrace as log events.
Size of database buffers the write daemon wrote during its most recent cycle
Amount of time the write daemon spent writing buffers to databases during its most recent cycle
The list of 'known' or 'documented' metrics in IRIS is available in the InterSystems documentation. It is possible that there will be additional metrics on the Prometheus style page that we collect these metrics from.
If you enable this feature set, these undocumented metrics will be collected and reported but without any metadata (e.g. display name and unit). They will still be available for charting and alerting as needed. If you would like to configure metadata for these you can do so by editing them in the Metrics page.
A database may enter a corrupted state if it attempts to expand beyond it's maximum size. A log event with the title "Database <database> will be unable to expand!" will be reported if we detect the difference between the current size and the maximum size is less than the expansion size of the database.
If there is an error when collecting the metrics/events a log event/record will be reporting and visible on the IRIS instance entity with details on the error.
If you have the 'system-alerts' feature set enabled, the alerts API endpoint will be polled and the alerts reported in Dynatrace as log events.
/api/monitor
endpoint reachableFind 'InterSystems IRIS' in the in-product Extensions or Hub page and activate (if offline you can download the extension from this Hub page in the 'Versions' section and install as a custom extension).
Once activated in your environment you can create monitoring configurations. Each monitoring configuration can have up to 100 IRIS instances configured.
First select the desired ActiveGate group that will run the monitoring configuration.
For each cluster configure a IRIS Instance Endpoint:
At the monitoring configuration level the following configurations will apply to all endpoints:
The Log level will be set at the monitoring configuration level and will apply to all endpoints. INFO by default. DEBUG logging is only needed when investigating issues with support.
Finally, enable the desired feature sets (refer to the Details tab for what metrics are associated with which feature sets).
If the 'undocumented-metrics' feature set is enabled, the extension will collect custom and any undocumented IRIS metrics available on the metrics API page. As these metrics are unknown in advance they will be missing metadata such as a display name, description, and unit. They will be usable as-is but if you'd like you can configure metadate for these yourself.
Refer to the Metrics browser documentation page for details on how to do this.
There is no charge for obtaining the extension, only for the data (metrics & events) that the extension ingests. The details of license consumption will depend on which licensing model you are using. This will either be Dynatrace classic licensing or the Dynatrace Platform Subscription (DPS) model.
License consumption is based on the number of metric data points ingested. The following formula will provide approximate annual data points ingested assuming all feature sets are enabled:
(64 + (1 x processTypes) + (5 x ipAddress:port) + (7 x databases) + (2 x journalTypes) + (3 x smhPurpose) + (7 x namespaces) + (6 x wqmCategories)) x 60 min x 24 h x 365 days data points/year
In the classic licensing model, metric ingestion will consume Davis Data Units (DDUs) at the rate of .001 DDUs per metric data point.
Multiply the above formula for annual data points by .001 to estimate annual DDU usage.
This extension will report log events in 2 situations:
License consumption is based on the size (in bytes) of data ingested & processed, retained, and queried so there is not a single formula to estimate the total consumption from this extension. Consult the log management and analytics documentation for details on the other dimensions that will effect license consumption.
In the classic licensing model, log record ingestion will consume Davis Data Units (DDUs) at the rate of 100 DDUs per Gigabyte of log records ingested.
In log monitoring classic, license consumption is based on the number of ingested log records.
In the classic licensing model, log record ingestion will consume Davis Data Units (DDUs) at the rate of .0005 DDUs per ingested log record.
Multiply estimated ingested log records by .0005 to estimate DDU usage from log records.
Below is a complete list of the feature sets provided in this version. To ensure a good fit for your needs, individual feature sets can be activated and deactivated by your administrator during configuration.
Metric name | Metric key | Description | Unit |
---|---|---|---|
Amount to expand database | iris_db_expansion_size_mb | Amount by which to expand database | MegaByte |
Free space | iris_db_free_space | Free space available in database (updated once per day) | MegaByte |
IRIS DB latency | iris_db_latency | Amount of time to complete a random read from database | MilliSecond |
Database max size | iris_db_max_size_mb | Maximum size to which database can grow | MegaByte |
Database size | iris_db_size_mb | Size of database | MegaByte |
Database directory space free | iris_directory_space | Free space available on the database directory’s storage volume | MegaByte |
IRIS disk percent full | iris_disk_percent_full | Percent of space filled on the database directory’s storage volume | Percent |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Journal block write rate | iris_jrn_block_per_sec | Journal blocks written to disk per second | PerSecond |
Journal entries per second | iris_jrn_entry_per_sec | Journal entries per second | PerSecond |
Free space on journal directory | iris_jrn_free_space | Free space available on each journal directory's storage volume, in megabytes | MegaByte |
Journal file size | iris_jrn_size | Current size of each journal file, in megabytes | MegaByte |
Metric name | Metric key | Description | Unit |
---|---|---|---|
DB buffers written in current cycle and also prior | iris_wd_buffer_redirty | Number of database buffers the write daemon wrote during the most recent cycle that were also written in prior cycle | Count |
DB buffers written in recent cycle | iris_wd_buffer_write | Number of database buffers the write daemon wrote during its most recent cycle | Count |
Write daemon cycle completion time | iris_wd_cycle_time | Amount of time the most recent write daemon cycle took to complete | MilliSecond |
Processes holding global buffers | iris_wd_proc_in_global | Number of processes actively holding global buffers at start of the most recent write daemon cycle | Count |
Size of database buffers written in recent cycle | iris_wd_size_write | Size of database buffers the write daemon wrote during its most recent cycle | KiloByte |
Write daemon inactive time before cycle | iris_wd_sleep | Amount of time that the write daemon was inactive before its most recent cycle began | MilliSecond |
In-memory buffers used | iris_wd_temp_queue | Number of in-memory buffers the write daemon used at the start of its most recent cycle | Count |
In-memory buffers written | iris_wd_temp_write | Number of in-memory buffers the write daemon wrote during its most recent cycle | Count |
Time writing to WIJ file | iris_wdwij_time | Amount of time the write daemon spent writing to the WIJ file during its most recent cycle | MilliSecond |
Time writing buffers to DBs | iris_wd_write_time | Amount of time the write daemon spent writing buffers to databases during its most recent cycle | MilliSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Alerts posted to messages log | iris_system_alerts.count | The number of alerts posted to the messages log | Count |
New system alerts available | iris_system_alerts_new | Whether new alerts are available on the /api/monitor/alerts endpoint | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Web requests | iris_csp_activity.count | Number of web requests served by the Web Gateway Server | Count |
Current web server gateway connections | iris_csp_actual_connections | Number of current connections to this server by the Web Gateway Server | Count |
Current connections processing a request | iris_csp_in_use_connections | Number of current connections to this server by the Web Gateway Server that are processing a web request | Count |
Connections reserved for state-aware apps | iris_csp_private_connections | Number of current connections to this server by the Web Gateway Server that are reserved for state-aware applications (Preserve mode 1) | Count |
Web gateway server latency | iris_csp_gateway_latency | Amount of time to obtain a response from the Web Gateway Server when fetching iris_csp_ metrics | MilliSecond |
Active web sessions | iris_csp_sessions | Number of currently active web session IDs on this server | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Average running worker jobs | iris_wqm_active_worker_jobs | Average number of worker jobs running logic that are not blocked | Count |
Average commands in WQM category rate | iris_wqm_commands_per_sec | Average number of commands executed in this Work Queue Management category, per second | PerSecond |
Average global references in WQM category rate | iris_wqm_globals_per_sec | Average number of global references run in this Work Queue Management category, per second | PerSecond |
Max active workers since last log entry | iris_wqm_max_active_worker_jobs | Maximum number of active workers since the last log entry was recorded | Count |
Max entries in MQM queue since last log | iris_wqm_max_work_queue_depth | Maximum number of entries in the queue of this Work Queue Management category since the last log | Count |
Average idle worker jobs | iris_wqm_waiting_worker_jobs | Average number of idle worker jobs waiting for a group to connect to and do work for | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Licenses not in use | iris_license_available | Number of licenses not currently in use | Count |
Licenses in use | iris_license_consumed | Number of licenses currently in use | Count |
Licenses percent used | iris_license_percent_used | Percent of licenses currently in use | Percent |
Metric name | Metric key | Description | Unit |
---|---|---|---|
SQL statements executing | iris_sql_active_queries | The number of SQL statements currently executing | Count |
95th percentile elapsed time for sql executing | iris_sql_active_queries_95_percentile | For the current set of active SQL statements, the 95th percentile elapsed time since a statement began executing | Second |
99th percentile elapsed time for sql executing | iris_sql_active_queries_99_percentile | For the current set of active SQL statements, the 99th percentile elapsed time since a statement began executing | Second |
Number of ObjectScript commands performing SQL rate | iris_sql_commands_per_second | Average number of ObjectScript commands executed to perform SQL queries, per second | PerSecond |
Average SQL runtime | iris_sql_queries_avg_runtime | Average SQL statement runtime | Second |
SQL runtime standard deviation | iris_sql_queries_avg_runtime_std_dev | Standard deviation of the average SQL statement runtime | Second |
SQL query rate | iris_sql_queries_per_second | Average number of SQL statements, per second | PerSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Time to collect iris_db sensors | iris_sam_get_db_sensors_seconds | Amount of time it took to collect iris_db* sensors | Second |
Time to collect iris_jrn sensors | iris_sam_get_jrn_sensors_seconds | Amount of time it took to collect iris_jrn* sensors | Second |
Time to collect iris_sql sensors | iris_sam_get_sql_sensors_seconds | Amount of time it took to collect iris_sql* sensors | Second |
Time to collect iris_wqm sensors | iris_sam_get_wqm_sensors_seconds | Amount of time it took to collect iris_wqm* sensors | Second |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Aseizes on global resource rate | iris_glo_a_seize_per_sec | Number of Aseizes on the global resource per second | PerSecond |
Nseizes on global resource rate | iris_glo_n_seize_per_sec | Number of Nseizes on the global resource per second | PerSecond |
Refs to globals on local DBs rate | iris_glo_ref_per_sec | Number of references to globals located on local databases per second | PerSecond |
Refs to globals on remote DBs rate | iris_glo_ref_rem_per_sec | Number of references to globals located on remote databases per second | PerSecond |
Seizes on global resource rate | iris_glo_seize_per_sec | Number of seizes on the global resource per second | PerSecond |
Updates to globals on local DBs rate | iris_glo_update_per_sec | Number of updates (SET and KILL commands) to globals located on local databases per second | PerSecond |
Updates to globals on remote DBs rate | iris_glo_update_rem_per_sec | Number of updates (SET and KILL commands) to globals located on remote databases per second | PerSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Current ECP active client connections | iris_ecp_conn | Total number of active client connections on this ECP application server | Count |
Max client connections from this ECP app server | iris_ecp_conn_max | Maximum active client connections from this ECP application server | Count |
Synchronized ECP servers | iris_ecp_connections | Number of servers synchronized when this ECP application server synchronizes with its configured ECP data servers | Count |
ECP server latency | iris_ecp_latency | Latency between the ECP application server and the ECP data server | MilliSecond |
ECP active client connections rate | iris_ecps_conn | Total active client connections to this ECP data server per second | PerSecond |
Max client connections to this ECP data server | iris_ecps_conn_max | Maximum active client connections to this ECP data server | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Asiezes on object resource rate | iris_obj_a_seize_per_sec | Number of Aseizes on the object resource per second | PerSecond |
Objects deleted rate | iris_obj_del_per_sec | Number of objects deleted per second | PerSecond |
Objects referenced rate | iris_obj_hit_per_sec | Number of object references per second, in process memory | PerSecond |
Objects loaded from disk rate | iris_obj_load_per_sec | Number of objects loaded from disk per second, not in shared memory | PerSecond |
Object references not found in mem rate | iris_obj_miss_per_sec | Number of object references not found in memory per second | PerSecond |
Initialized objects rate | iris_obj_new_per_sec | Number of objects initialized per second | PerSecond |
Siezes on object resource rate | iris_obj_seize_per_sec | Number of seizes on the object resource per second | PerSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
WIJ physical block writes per second | iris_wij_writes_per_sec | WIJ physical block writes per second | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Asiezes on routine resource rate | iris_rtn_a_seize_per_sec | Number of Aseizes on the routine resource per second | PerSecond |
Routine calls to globals on remote DBs rate | iris_rtn_call_local_per_sec | Number of local routine calls per second to globals located on remote databases per second | PerSecond |
Routine call memory misses rate | iris_rtn_call_miss_per_sec | Number of routines calls not found in memory per second | PerSecond |
Remote routine calls rate | iris_rtn_call_remote_per_sec | Number of remote routine calls per second | PerSecond |
Routines locally loaded or saved to disk rate | iris_rtn_load_per_sec | Number of routines locally loaded from or saved to disk per second | PerSecond |
Routines remotely loaded or saved to disk rate | iris_rtn_load_rem_per_sec | Number of routines remotely loaded from or saved to disk per second | PerSecond |
Seizes on the routine resource rate | iris_rtn_seize_per_sec | Number of seizes on the routine resource per second | PerSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
IRIS availability | iris_availability | The availability of the configured API as seen by the extension | Percent |
CPU percent used | iris_cpu_pct | Percent of CPU usage by InterSystems IRIS process type | Percent |
CPU overall usage | iris_cpu_usage | Percent of CPU usage for all programs on the operating system | Percent |
Physical memory used | iris_phys_mem_percent_used | Percent of physical memory (RAM) currently in use | Percent |
Percent used of max page file space | iris_page_space_percent_used | Percent of maximum allocated page file space used | Percent |
Physical database blocks read from disk rate | iris_phys_reads_per_sec | Physical database blocks read from disk per second | PerSecond |
Physical database blocks written to disk rate | iris_phys_writes_per_sec | Physical database blocks written to disk per second | PerSecond |
Active IRIS process count | iris_process_count.gauge | Total number of active InterSystems IRIS processes | Count |
System state | iris_system_state | Current reported system state (GREEN, RED, YELLOW, or HUNG) | Count |
Open transactions | iris_trans_open_count.gauge | Number of open transactions on the current instance | Count |
Average duration of open transactions | iris_trans_open_secs | Average duration of open transactions on the current instance | Second |
Longest open transaction duration | iris_trans_open_secs_max | Duration of longest currently open transaction on the current instance | Second |
IRIS cache efficiency | iris_cache_efficiency | Ratio of global references to physical reads and writes, as a percent | Percent |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Shared memory available by purpose | iris_smh_available | Shared memory available by purpose | KiloByte |
Shared memory full percentage by purpose | iris_smh_percent_full | Percent of allocated shared memory in use by purpose | Percent |
Instance total shared memory allocated | iris_smh_total | Shared memory allocated for current instance | KiloByte |
Instance shared memory in use percentage | iris_smh_total_percent_full | Percent of allocated shared memory in use for current instance | Percent |
Shared memory percentage used by purpose | iris_smh_used | Shared memory in use by purpose | Percent |
No release notes