SAP HANA

Monitor SAP HANA In-Memory Data Platform

❗️

This source has been deprecated

observIQ is in the process of transitioning a subset of BindPlane's monitoring capabilities to the observIQ OpenTelemetry Collector. As a result, this Source is no longer publicly available in BindPlane. If you need access to this Source, please reach out to our support via chat or via [email protected].

Data Collection Setup

Metrics are collected via REST ASAP HANA platform’s API

Network Requirements

Port: 30015 (TCP) Default

🚧

Configured Database Ports

The port number is bound to the instance of the database. For more information on ranges and rules for port numbers, see: https://help.sap.com/viewer/ports

Least Privilege User

Setting SAP HANA User Permissions

The least privileged user requirements for BindPlane include a restricted SAP HANA user account that has been customized as described in the following section.

1. Creating a Restricted SAP HANA User

CREATE RESTRICTED USER <USERNAME> PASSWORD “<password>”;
ALTER USER <USERNAME> ENABLE CLIENT CONNECT;

Granting Privileges to a Restricted SAP HANA User

  1. Run GRANT CATALOG READ TO <USERNAME>; to give the user read-only access to all system views.
  2. Run GRANT SELECT ON <VIEW_NAME> TO <USERNAME>; for each view listed below:
_SYS_STATISTICS.STATISTICS_CURRENT_ALERTS
SYS.M_BLOCKED_TRANSACTIONS
SYS.M_CACHES
SYS.M_CONNECTION_STATISTICS
SYS.M_CONNECTIONS
SYS.M_DATABASE
SYS.M_DATABASE_HISTORY
SYS.M_DISKS
SYS.M_EXPENSIVE_STATEMENTS
SYS.M_GARBAGE_COLLECTION_STATISTICS
SYS.M_HOST_INFORMATION
SYS.M_HOST_RESOURCE_UTILIZATION
SYS.M_JOB_PROGRESS
SYS.M_LANDSCAPE_HOST_CONFIGURATION
SYS.M_LICENSE
SYS.M_MEMORY
SYS.M_RECORD_LOCKS
SYS.M_SERVICE_MEMORY
SYS.M_SERVICE_REPLICATION
SYS.M_SERVICE_STATISTICS
SYS.M_SERVICE_THREADS
SYS.M_SERVICES
SYS.M_SHARED_MEMORY
SYS.M_SYSTEM_OVERVIEW
SYS.M_TRANSACTIONS
SYS.M_VOLUME_IO_STATISTICS
SYS.M_VOLUME_SIZES
SYS.M_VOLUMES

For detailed information on creating restricted users and granting privileges to users, visit the SAP Help Portal.

🚧

Change user password after creation

After creating the user, the password must be changed by logging in to the SAP HANA Administration Console.

Collecting Metrics from SAP S/4HANA Cloud

Configuring SAP S/4HANA Cloud

Requirements

Update Access Points

  • The default deployment needs to be updated so that the collector can communicate with the SAP Host Agent(s) and Start Service over HTTP(S). This is accomplished by allowing access to the hosts using those services' ports.
  • The only IP address which needs access to the SAP hosts is that of the VM running the BindPlane Collector.
  1. Navigate to the relevant instance in SAP Cloud Application Library.
  2. Click Edit to edit the deployment.

Host Agent

  • Allow port 1128 (HTTP) or 1129 (HTTPS)

SAP Start Service

  • For a Start Service without a custom /etc/services file:
    • Each instance is deterministically assigned a port in the range of 50013-59913. The scheme is 5<INSTANCE_NUMBER>13 for HTTP and 5<INSTANCE_NUMBER>14 for HTTPS.
    • Either allow the port range of 50013-59913 or each individual port based on the instance numbers in your deployment, e.g. a host with an ABAP instance as instance 0 and an ABAP Central Services instance as instance 1 will need ports 50013 and 50113 whitelisted for HTTP.
  • For a Start Service with a custom /etc/services file:
    • Allow access to the hosts using the ports specified in the file.
  • If you would like to verify the expected ports are open, you can run this command from the S/4HANA host to list ports that the sapstartsrv process is listening on:
    netstat -tnap | grep 'LISTEN.*sapstartsrv'
    

Configuring BindPlane Collector Host

  • The host running the collector needs to be updated so that the SAP hostnames can be resolved to IP addresses.
  • To explain, running the sapcontrol function "GetSystemInstanceList" shows our two instances with hostnames of vhcals4hcs and vhcals4hci.
    hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus
    vhcals4hcs, 1, 50113, 50114, 1, MESSAGESERVER|ENQUE|WEBDISP, GREEN
    vhcals4hci, 0, 50013, 50014, 3, ABAP|GATEWAY|ICMAN|IGS, GREEN
    
  • The collector will be unable to connect to those hosts by name without the following changes.
  • For more information about accessing the S/4HANA system remotely, see section 2.3 of Getting Started with SAP S/4HANA 1809(FPS01).

Configuring Collector Host (Linux)

  1. Connect to the host running the BindPlane collector using SSH. You will most likely need root access to edit the /etc/hosts file.
  2. Edit the /etc/hosts file using a text editor such as nano or vi. As always when editing important files, it is a very good idea to make a backup before making the changes.
  3. Add the following lines to /etc/hosts, filling in the actual external IP addresses from the CAL instance page.
    # S4H Appliance
    <External IP Address SAP S4HANA/HDB server> vhcals4hci.dummy.nodomain vhcals4hci vhcals4hcs.dummy.nodomain vhcals4hcs vhcalhdbdb vhcaldhbdb.dummy.nodomain
    <IP Address SAP NW JAVA/ASE/ADS server> vhcalj2eci.dummy.nodomain vhcalj2eci vhcalj2ecs.dummy.nodomain vhcalj2ecs vhcalj2edb vhcalj2edb.dummy.nodomain
    <IP Address SAP BI Platform> bihost bihost.dummy.nodomain
    
    The external IP address(es) can be found using the CAL instance details page, where the external and internal addresses of every deployed VM are listed. Be sure to enter the external IP addresses (those not starting with 10.).
460
  1. Save the modified file.
  2. You may need to restart the VM for the changes to take effect.

Supported Versions

SAP HANA 1.0

  • SPS 10
  • SPS 12

SAP HANA 2.0

Connection Parameters

NameRequired?Description
HostRequiredThe SAP HANA database to connect to.
PortThe port for communication to the SAP HANA database.
UsernameRequired
PasswordRequired
SSL ConfigurationThe SSL mode to use when connecting to the target. Can be configured to not use SSL (No SSL), use SSL but do not verify the target's certificate (No Verify), and use SSL and verify the target's certificate (Verify).
Failover HostsComma-separated list of additional failover hosts to attempt to connect to if the primary host is unavailable
Collect EventsControls whether events are collected and returned.

Metrics

Disk

NameDescription
Device IDDevice ID
Device NameDevice Name
HostHost
IDsIDs
Total Read Size (Bytes)Total Read Size
Total ReadsTotal Reads
Total Size (Bytes)Total Size
Total Write Size (Bytes)Total Write Size
Total WritesTotal Writes
Used Size (Bytes)Used Size
Utilization (%)Utilization

Host

NameDescription
Aborting TransactionsAborting Transactions
ActiveWhether the host is currently active
Active Prepare Commit TransactionsActive Prepare Commit Transactions
Active ThreadsActive Threads
Active TransactionsActive Transactions
Actual Indexserver RoleActual Indexserver Role
Actual Nameserver RoleActual Nameserver Role
Average Current Transaction Run Time (Seconds)Average Current Transaction Run Time
Average Response Time (Milliseconds)Average time to respond to a request
Blocked TransactionsTransactions waiting for a record lock
Cache Capacity (Bytes)Cache Capacity
Cache EntriesCache Entries
Cache HitsCache Hits
Cache InsertsCache Inserts
Cache InvalidatesCache Invalidates
Cache MissesCache Misses
CachesCaches
Configured Indexserver RoleConfigured Indexserver Role
Configured Nameserver RoleConfigured Nameserver Role
CPU Usage (Milliseconds)The sum of user time, system time, and wait I/O time and usages
Current ConnectionsCurrent Connections
Current TransactionsCurrent Transactions
Database CPU Time (Milliseconds)Database CPU Time
Database Memory Used (Bytes)Database Memory Used
Database Memory Utilization (%)Total memory used as a proportion of the sum of used and free physical memory
Database Resident Memory (Bytes)Database Resident Memory
DDL Garbage Collection TransactionsDDL Garbage Collection Transactions
Expensive StatementsExpensive Statements
Expensive Statements Duration (Microseconds)Expensive Statements Duration
External TransactionsExternal Transactions
Failover GroupFailover Group
Failover StatusFailover Status
Garbage Collection TransactionsGarbage Collection Transactions
HostHost
Idle ConnectionsIdle Connections
Inactive ThreadsInactive Threads
Inactive TransactionsInactive Transactions
Internal TransactionsInternal Transactions
IP AddressIP Address
JobsJobs
Maximum Current Transaction Run Time (Seconds)Maximum Current Transaction Run Time
Maximum Service Start TimeMaximum Service Start Time
Memory Allocation Limit (Bytes)Memory Allocation Limit
Partial Aborting TransactionsPartial Aborting Transactions
Physical Memory Utilization (%)Used physical memory as a proportion of the sum of used and free physical memory
Precommitted TransactionsPrecommitted Transactions
Record LocksRecord Locks
Request Rate (Requests per Second)The number of requests made in one second
Running ConnectionsRunning Connections
StatusWhether the host is currently OK or in some other state
Storage PartitionStorage Partition
Swap Space Utilization (%)Used swap space as a proportion of the sum of used and free swap space
Total CPU Time (Milliseconds)Total CPU Time
Total Data Received (Bytes)Total Data Received
Total Data Sent (Bytes)Total Data Sent
Total Data Transferred (Bytes)The sum of sent and received message data
Total Physical Memory (Bytes)Total Physical Memory
Total Resident Memory (Bytes)Total Resident Memory
Total Select ExecutionsTotal Select Executions
Total Swap Space (Bytes)Total Swap Space
Total TransactionsTotal Transactions
Total Update ExecutionsTotal Update Executions
Uptime (Hours)Uptime
Used Cache (Bytes)Used Cache
Used Physical Memory (Bytes)Used Physical Memory
Used Swap Space (Bytes)Used Swap Space
User TransactionsUser Transactions

Service

NameDescription
Aborting TransactionsAborting Transactions
ActiveWhether the service is currently active
Active Prepare Commit TransactionsActive Prepare Commit Transactions
Active ThreadsActive Threads
Active TransactionsActive Transactions
Average Current Transaction Run Time (Seconds)Average Current Transaction Run Time
Blocked TransactionsTransactions waiting for a record lock
Cache Capacity (Bytes)Cache Capacity
Cache EntriesCache Entries
Cache HitsCache Hits
Cache InsertsCache Inserts
Cache InvalidatesCache Invalidates
Cache MissesCache Misses
Cache Used (Bytes)Cache Used
CachesCaches
CPU Utilization (%)Percentage of CPU time spent on this service
Current TransactionsCurrent Transactions
DDL Garbage Collection TransactionsDDL Garbage Collection Transactions
Effective Allocation Limit (Bytes)Effective Allocation Limit
EntersEnters
Expensive StatementsExpensive Statements
Expensive Statements Duration (Microseconds)Expensive Statements Duration
External TransactionsExternal Transactions
Garbage Collection TransactionsGarbage Collection Transactions
HistoriesHistories
HostHost
Idle ConnectionsIdle Connections
Inactive ThreadsInactive Threads
Inactive TransactionsInactive Transactions
Internal TransactionsInternal Transactions
JobsJobs
Maximum Current Transaction Run Time (Seconds)Maximum Current Transaction Run Time
Memory Used (Bytes)Memory Used
Memory Utilization (%)The total memory used as a percentage of the effective memory allocation limit
NameName
Open FilesOpen Files
Partial Aborting TransactionsPartial Aborting Transactions
Pending RequestsPending Requests
PortPort
Precommitted TransactionsPrecommitted Transactions
Process IDProcess ID
Processed JobsProcessed Jobs
Queue EmptiesQueue Empties
Queue LoadsQueue Loads
Queue NonEmpty LoadsQueue NonEmpty Loads
Record LocksRecord Locks
Requests (Requests per Second)Requests
Response Time (Milliseconds)Average time for the service to respond to requests
RoleCoordinator type in distributed landscape
Running ConnectionsRunning Connections
SavepointsSavepoints
SQL PortSQL Port
Start TimeStart Time
Started JobsStarted Jobs
Uptime (Hours)Uptime
User TransactionsUser Transactions
WaitersWaiters

Service Shared Memory

NameDescription
Allocated Size (Bytes)Allocated Size
CategoryCategory
Free Size (Bytes)Free Size
HostHost
PortPort
Used Size (Bytes)Used Size

System

NameDescription
Alerts StatusAlerts Status
All Services Started StatusAll Services Started Status
Average Response Time (Milliseconds)Average time to respond to a request
Blocked TransactionsTransactions waiting for a record lock
CPU CoresCPU Cores
CPU ModelCPU Model
CPU StatusWhether the CPU is OK
Data Backup Capacity (Bytes)Data Backup Capacity
Data Backup Usage (Bytes)Data Backup Usage
Data Backup Utilization (%)Percentage of disk space used for data backups
Data Capacity (Bytes)Data Capacity
Data Usage (Bytes)Data Usage
Data Utilization (%)Percentage of disk space used
Disk Data StatusWhether the disk data is OK
Disk Log StatusDisk Log Status
Disk Trace StatusDisk Trace Status
Expensive Statement Duration (Microseconds)Expensive Statement Duration
Expensive StatementsExpensive Statements
Global Allocation Limit (Bytes)Global Allocation Limit
Hardware KeyHardware Key
HostHost
IDID
Idle ConnectionsIdle Connections
Idle Time (Milliseconds)Idle Time
Install NumberInstall Number
I/O Wait Time (Milliseconds)I/O Wait Time
IP AddressesIP Addresses
JobsJobs
Last Update Install TimeLast Update Install Time
License Expiration DateLicense Expiration Date
License is EnforcedLicense is Enforced
License is Locked DownLicense is Locked Down
License is PermanentLicense is Permanent
License is ValidLicense is Valid
Log Backup Capacity (Bytes)Log Backup Capacity
Log Backup Usage (Bytes)Log Backup Usage
Log Backup Utilization (%)Log Backup Utilization
Log Capacity (Bytes)Log Capacity
Log Usage (Bytes)Log Usage
Log Utilization (%)Log Utilization
Memory StatusWhether the memory is OK
NumberNumber
Operating System NameThe name of the operating system (Windows, RHEL, etc.)
Physical Memory (Bytes)Physical Memory
Physical Memory Used (Bytes)Physical Memory Used
Physical Memory Utilization (%)Used physical memory as a proportion of the sum of used and free physical memory
Product Limit (Gibibytes)Product Limit
Product NameProduct Name
Product Usage (Gibibytes)Product Usage
Product Utilization (%)Product Utilization
Public NamePublic Name
Request Rate (Requests per Second)The number of requests made in one second
Running ConnectionsRunning Connections
Running HostsRunning Hosts
Swap Memory (Bytes)Swap Memory
Time (Milliseconds)Time
Time Until License Expiration (Days)Time Until License Expiration
Total HostsTotal Hosts
Total Physical Memory (Bytes)Total Physical Memory
Total Virtual Memory (Bytes)Total Virtual Memory
Trace Capacity (Bytes)Trace Capacity
Trace Usage (Bytes)Trace Usage
Trace Utilization (%)Trace Utilization
User Time (Milliseconds)User Time
VersionVersion
Virtual Memory Used (Bytes)Virtual Memory Used
Virtual Memory Utilization (%)The sum of used physical and swap memory as a proportion of the sum of used and free physical and swap memory

Volume

NameDescription
Close CallsClose Calls
Data Size (Bytes)Data Size
Disk IDsDisk IDs
EOF ReadsEOF Reads
Exists CallsExists Calls
GetDeviceID CallsGetDeviceID Calls
GetModificationTime CallsGetModificationTime Calls
GetSize CallsGetSize Calls
HostHost
IDID
Log Size (Bytes)Log Size
Open CallsOpen Calls
PortPort
Remove CallsRemove Calls
Resize CallsResize Calls
Service NameService Name
SubpathSubpath
Synchronous CallsSynchronous Calls
Total AppendsTotal Appends
Total Asynchronous ReadsTotal Asynchronous Reads
Total Asynchronous WritesTotal Asynchronous Writes
Total Failed ReadsTotal Failed Reads
Total Failed WritesTotal Failed Writes
Total Full Retry ReadsTotal Full Retry Reads
Total Full Retry WritesTotal Full Retry Writes
Total I/O Time (Seconds)Total I/O Time
Total Read Size (Bytes)Total Read Size
Total Read Time (Seconds)Total Read Time
Total ReadsTotal Reads
Total Short ReadsTotal Short Reads
Total Short WritesTotal Short Writes
Total Synchronous ReadsTotal Synchronous Reads
Total Synchronous WritesTotal Synchronous Writes
Total Trigger Asynchronous ReadsTotal Trigger Asynchronous Reads
Total Trigger Asynchronous WritesTotal Trigger Asynchronous Writes
Total Write Size (Bytes)Total Write Size
Total Write Time (Seconds)Total Write Time
Total WritesTotal Writes