SAP HANA database monitoring
Learn how to monitor your SAP HANA database using the SAP HANA database ActiveGate extension.
Starting with Dynatrace OneAgent and ActiveGate version 1.231, we are upgrading the Extension Framework (also referred to as the plugins framework) from Python 3.6 to Python 3.8.
- Consequences: Some Dynatrace extensions running in your environment may stop working and require redeployment of a new version prepared for Python 3.8.
- No data is provided for affected metrics on dashboards, alerts, and custom device pages populated by the affected extension metrics.
- Extension logs display errors. Most often this will manifest itself as Python
ModuleNotFoundErrorin the PluginAgent log.
- Sometimes the Python virtual machine crashes.
- Impact: This issue affects only those extensions that use native libraries called from Python code distributed with the extension.
For remediation details, see Dynatrace Extensions.
- Environment ActiveGate with remote access to the SAP HANA database server
- A SAP HANA database user with the
- SAP hdbcli Python library present on the ActiveGate host (see configuration instructions below)
OneAgent on HANA host
You can optionally install OneAgent on a HANA host to get additional infrastructure data related to disk space and networking, as well as host crash and availability monitoring. However, OneAgent installed on a HANA host may interfere with database updates if it has automatic process injection enabled (default). If you decide to have OneAgent installed on your HANA host, make sure you disable process auto-injection.
Disable auto-injection at installation time
To install OneAgent with the parameters to enable Infrastructure Monitoring mode and disable process injection, run the command below:
/bin/sh Dynatrace-OneAgent-Linux-<version>.sh --set-infra-only=true --set-auto-injection-enabled=false
Disable auto-injection after OneAgent installation
To disable auto-injection after OneAgent is installed
- Open a terminal on your HANA host.
- Run the
oneagentctlcommand-line tool with the following parameters to enable Infrastructure Monitoring mode and disable process injection. The command will also restart the OneAgent service to automatically apply your changes.
./oneagentctl --set-infra-only=true --set-auto-injection-enabled=false --restart-service
For more information, see OneAgent configuration via command-line interface
Dynatrace web UI
- In the Dynatrace menu, go to Hosts.
- Find your HANA host and select it.
- Select More (…) > Settings > Monitoring.
- Turn off Full-stack monitoring and Auto-injection.
To install the SAP HANA database extension
In the Dynatrace menu, go to Hub.
Find and select SAP HANA Database.
Select Download to get the extension ZIP file. Don't rename the file.
Unzip the ZIP file to the
plugin_deploymentdirectory of your ActiveGate host.
Download the SAP hdbcli python wheel file for your ActiveGate's operating system.
- For ActiveGate version 1.230 and earlier, use the closest Python 3 version (cp3x) that is at or below version 3.6.
- For ActiveGate version 1.231+, use the closest version of the library (cp3x) that is at or below version 3.8.
If there is no cp38 version of the
.whlfile for your OS, use the version that is closest to either cp36 or cp38, depending on your ActiveGate version.
Rename the file extension from
Unzip the contents of the file into
The resulting file structure should look like this:File structureplaintext
plugin_deployment - <EXTENSION-SPECIFIC-DIRECTORY> - all files from unzipping extension ZIP file - hdbcli - __init__.py - dbapi.py - resultrow.py - hdbcli-<VERSION>.dist-info - pyhdbcli.abi3.so/pyhdbcli.pyd
In Dynatrace, go to Settings > Monitoring > Monitored technologies.
Select Add new technology monitoring and then Add ActiveGate extension.
Select Upload extension and upload the extension ZIP file.
After you upload the extension, go to Settings > Monitoring > Monitored technologies and switch to the Custom extensions tab.
Find the extension and select it to open it for Endpoint configuration.
Enter the endpoint information.
Enter a meaningful endpoint name.
Select this only if Dynatrace ONE requests it so they can investigate an issue.
Name of custom device
optional The default device name is
<Host> - <Database Name>.
Name of group
optional Enter a custom group name for the new entity to be created. The default group name is
The DNS or IP address that the database resides on.
The default port is
The user name of a SAP HANA database user with the
The password of a SAP HANA database user with the
Capture slow-running queries
SAP HANA Database extension version 1.004+ Some metrics require queries that can take longer than the extension timeout. This allows specific endpoints to not capture these metrics.1 Default is to capture these metrics.
Type or select an ActiveGate.1
Currently, the only metric that would not be captured is
Heap - Temporary Memory Used. See the Additional Information in the SAP HANA Documentation for more information about the view this metric uses.
Available metrics are listed below.
|Disk I/O Speed - Read||MB/sec||HOST, SERVICE_NAME, TYPE|
|Disk I/O Speed - Write||MB/sec||HOST, SERVICE_NAME, TYPE|
|Host CPU Utilization||%||HOST|
|Network Traffic Rates - Received||KB/sec||HOST, INTERFACE|
|Network Traffic Rates - Transmitted||KB/sec||HOST, INTERFACE|
|Open Connections||Count of connections in ||-|
|Column Tables Memory Used||Amount of used memory for the Column Store Tables||HOST, SERVICE_NAME|
|Global Memory Allocation Limit||Allocation limit for all processes||HOST|
|Heap - Temporary Memory Used||Sum of the Temporary Objects Sizes by Host||HOST|
|Host Used Memory||Size of the memory pool for all SAP HANA processes||HOST|
|Host Used Physical Memory||Used physical memory on the host||HOST|
|Max Heap Memory Usage||Max Memory Used in the categories Pool/ColumnStoreTables, Pool/PersistenceManager, Pool/RowEngine, Pool/Statistics||HOST, CATEGORY|
|Row Store Allocated Size||The amount of memory allocated for Row Store||HOST, SERVICE_NAME|
|Unloads Due To Low Memory||Number of Unloads due to reason "LOW MEMORY"||-|
|Full Sync Status||HOSTS, SERVICE_NAME|
|Oldest Replication Snapshot||Seconds between now and the earliest snapshot for replication||-|
|Replication Errors||Number of replications with status ||-|
|Replication Log Shipping Delay||Number of seconds between the last log position time and the shipped log position time||HOSTS, SERVICE_NAME|
|Replication Mode||HOSTS, SERVICE_NAME|
|Replication Status||HOSTS, SERVICE_NAME|
|Secondary Failover Count||Number of times the primary has failed over to the secondary host||HOSTS, SERVICE_NAME|
|Services Unknown Replication Count||Number of services with replication status as ||-|
|Backup Failures||Number of backups in the ||TYPE|
|Previous Backup Duration||Number of seconds between the start and end of the most recent backup||TYPE|
|Time Since Previous Backup||Number of seconds since previous back up||TYPE|
|Service CPU Utilization||%||HOST, SERVICE_NAME|
|Service Memory Usage||Bytes||HOST, SERVICE_NAME|
|Service Status||HOST, SERVICE_NAME|
|Service Response Time||In milliseconds, the average of the last 1,000 requests to each service||HOST, SERVICE_NAME|
|Savepoints||The number of savepoints taken during that timeframe||-|
|Savepoints Critical Phase Duration||Amount of time spent in the critical phase portion of creating the savepoint||SERVICE_NAME|
|Time Since Previous Savepoint||Time since previous savepoint was taken.||-|
|Expensive Statements exceeding Duration Limit||Number of statements that took over the configured duration limit||-|
|Expensive Statements exceeding Memory Limit||Number of statements that took over the configured memory limit||-|
|Min SQL Plan Cache Hit Ratio||Minimum hit ratio of the SQL Plan Cache||-|
|Blocked Transactions||Number of blocked transactions||-|
|Current Transaction Locks||Number of transactions with a lock where the status is not ||-|
|Max MergeDog Thread Duration||The max execution time of the delta merge where the motivation is ||-|
|Max Redo Size||Max size of the redo log amount||-|
|Max Undo Size||Max size of the undo log amount||-|
|Waiting Threads||Number of threads that are not in the state ||-|