The **SAP Cloud ALM Health Monitoring** monitor retrieves health metrics from your SAP Cloud ALM tenant and publishes them into the monitoring system. It can also evaluate thresholds and raise alarms based on a selected measure per row.
Network connectivity from the collector to your SAP Cloud ALM tenant API endpoint (e.g. https://your-tenant.api.xxx.hana.ondemand.com).
The monitor requires a Web Service connector with authentication type CLOUD_ALM. SAP Cloud ALM Connector
This connector is based on a service key of the SAP Cloud ALM API service instance in the BTP subaccount that contains your Cloud ALM entitlement.
The following OAuth scopes must be included in the instance parameters (in the authorities list):
$XSMASTERAPPNAME.calm-api.hm.read$XSMASTERAPPNAME.calm-api.metrics.readEven if you already created a service key for the ALM connector, you do not need to delete the instance.
authorities array in the parameters JSON and save.| Endpoint | Purpose |
|---|---|
| POST /oauth/token | Authentication (BTP UAA) |
| GET /api/calm-metrics/v1/metrics?provider=hm | Retrieve health monitoring metrics |
The monitor can collect and publish the following measures for Cloud ALM health metrics:
Only usage is published with the PERCENT unit. The other measures are published without a unit.
G2W:80 W2M:90 syntax. Multi Threshold Syntax*) for Metric and Service nameThe monitor supports both global and row-level metric publishing:
When Send all metrics is enabled, the monitor suppresses some datapoint groups that contain only zero values for the same metric/tag combination. This avoids storing empty technical noise that does not add useful monitoring information.
The suppressed groups are:
When row-level publishing is used, the monitor publishes the measure selected in Alarm on for matching rows.
* and/or Service name = * to monitor everything or a broad subset| Field | Description | Default |
|---|---|---|
| Active | Enable/disable this configuration row | true |
| Service name | Filter by service name (* = any) | * |
| Metric | Filter by metric name (* = any) | * |
| Attributes Filter | Optional filter applied to datapoint attributes before alarm evaluation / row matching | (empty) |
| Alarm on | Which measure to evaluate for alarms (NONE / USAGE / VALUE / OK_STATUS / WARNING_STATUS / CRITICAL_STATUS) | USAGE |
| Thresholds | Multi-level thresholds (G2W / W2M / etc.) | G2W:80 W2M:90 |
| Alarm tag | Optional tag added to the alarm message | (empty) |
| Exclusive | If enabled, matching datapoints of this row can be consumed and not reused by later rows | true |
| Alarm | Enable/disable alarm creation for this row | true |
| Send metric | Publish the selected measure for this row when Send all metrics is disabled | true |
| Send all metrics | Publish all returned metrics and measures globally | true |
The Attributes Filter is an optional rule used to narrow down which datapoints a row can match.
When you use Load ALM Health Metrics, the discovered metrics also include the available datapoint attributes. This helps you see which attribute names are available for filtering.
It checks the datapoint’s attributes before the row is used for:
If the filter is empty or malformed, the row is not restricted by attributes.
All metrics are stored with the base key:
promonitor.cloud_alm.hm.*
Supported metric keys include:
| Metric Key | Unit | Description | Tags |
|---|---|---|---|
promonitor.cloud_alm.hm.<metric>.usage | % | Current utilization percentage | service.name, sap.service.name, service.namespace, service.instance.id, sap.service.display_name, plus datapoint-specific tags |
promonitor.cloud_alm.hm.<metric>.value | - | Current measured value | same as above |
promonitor.cloud_alm.hm.<metric>.limit | - | Configured limit | same as above |
promonitor.cloud_alm.hm.<metric>.okstatus | - | OK status datapoint | same as above |
promonitor.cloud_alm.hm.<metric>.warningstatus | - | Warning status datapoint | same as above |
promonitor.cloud_alm.hm.<metric>.criticalstatus | - | Critical status datapoint | same as above |
The displayed metric name in the UI is:
<metric> (usage), <metric> (value), <metric> (limit), <metric> (okStatus), <metric> (warningStatus), or <metric> (criticalStatus)
No rows needed. Empty table = publish everything. Send all metrics = true by default.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | * | * | (empty) | USAGE | G2W:80 W2M:90 | (empty) | true | true | true |
Alarms when usage crosses 80% on any metric for any service.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | * | (empty) | USAGE | G2W:80 W2M:90 | (empty) | true | true | true |
Only datapoints for S4H.100 are evaluated. Other services not matched.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | ABAP.Workprocess.Usage | (empty) | USAGE | G2W:70 W2M:85 | WP_OVERLOAD | true | true | true |
Stricter threshold for work process usage only. Other metrics for S4H.100 not matched by this row.
The ABAP.Workprocess.Usage metric returns one datapoint per Wp_type (DIA BTC UPD UP2 SPO). Use Attributes Filter to target dialog processes only.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | ABAP.Workprocess.Usage | Wp_type:DIA | USAGE | G2W:70 W2M:85 | (empty) | true | true | true |
Only datapoints where Wp_type = DIA are evaluated. Batch and update processes not alarmed.
ABAP.ShortDumps.Today returns one datapoint per Client. To alarm only on client 100:
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | ABAP.ShortDumps.Today | Client:100 | VALUE | G2W:50 W2M:200 | DUMPS_100 | true | true | true |
Alarm on = VALUE because this metric has no usage percentage. Threshold is a raw count.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | ABAP.Batchjobs.Aborted | Client:100 | VALUE | G2W:1 W2M:5 | BTC_ABORT | true | true | true |
Alarms as soon as 1 aborted job appears in client 100. G2W:1 means any non-zero value triggers warning.
Hana.Disk.Usage returns one datapoint per Usagetype (DATA LOG TRACE DATA_BACKUP etc.).
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | Hana.Disk.Usage | Usagetype:DATA | VALUE | G2W:300 W2M:400 | HANA_DISK | true | true | true |
Value is in GB. Threshold is a raw size. Adjust to your disk capacity.
ABAP.ResponseTime returns one datapoint per Tasktype (RFC Batch Update). To alarm on slow batch jobs:
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | ABAP.ResponseTime | Tasktype:Batch | VALUE | G2W:2000 W2M:5000 | SLOW_BTC | true | true | true |
Value is in ms. G2W:2000 = warning above 2 seconds. W2M:5000 = major above 5 seconds.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | * | * | (empty) | USAGE | G2W:80 W2M:90 | (empty) | true | true | false |
Send metric = false: alarms fire but no datapoints written to time-series.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | S4H.100 | ABAP.Workprocess.Usage | (empty) | USAGE | G2W:70 W2M:85 | S4H_PROD | true | true | true |
| true | * | ABAP.Workprocess.Usage | (empty) | USAGE | G2W:80 W2M:95 | (empty) | true | true | true |
Row 1 consumes S4H.100 datapoints (Exclusive = true). Row 2 applies a looser threshold to all other services.
DataCollector.Version and ABAP.Version are informational metrics that report 0 and should not alarm.
| Active | Service name | Metric | Attributes Filter | Alarm on | Thresholds | Alarm tag | Exclusive | Alarm | Send metric |
|---|---|---|---|---|---|---|---|---|---|
| true | * | DataCollector.Version | (empty) | NONE | G2W:80 W2M:90 | (empty) | true | false | false |
| true | * | ABAP.Version | (empty) | NONE | G2W:80 W2M:90 | (empty) | true | false | false |
| true | * | * | (empty) | USAGE | G2W:80 W2M:90 | (empty) | true | true | true |
Rows 1 and 2 consume the version metrics (Exclusive = true, Alarm = false, Send metric = false). Row 3 handles everything else.