User Tools

Site Tools


products:promonitor:latest:monitorsguide:sap_cloud_alm:intelligent_event_processing_monitor

ALM Intelligent Event Processing

Retrieves Intelligent Event Processing (IEP) metrics from SAP Cloud ALM API. Publishes time-series metrics and evaluates alarms per configured row.

  • API: GET /api/calm-metrics/v1/metrics?provider=iep

Prerequisites

Cloud ALM Connector (required)

Requires a Web Service connector with authentication type CLOUD_ALM.

SAP Cloud ALM Connector

Based on a service key from the SAP Cloud ALM API service instance in the BTP subaccount.

Required OAuth scopes in the authorities list of the instance parameters:

  • $XSMASTERAPPNAME.calm-api.iep.read
  • $XSMASTERAPPNAME.calm-api.metrics.read

API Endpoints

Endpoint Purpose
POST /oauth/token Authentication (BTP UAA)
POST /api/calm-analytics/v1/analytics/providers/filters Fetch IEP service IDs (data collection)
GET /api/calm-metrics/v1/metrics?provider=iep Retrieve IEP metrics

Key Features

  • Publishes eight metric types per IEP datapoint: events event_situations total_duration tickets alerts mails chat_messages operation_flows
  • Time window is a 5-minute aligned UTC window with a 1-minute delay: to = floor(now - 1min, 5min), from = to - 5min (format yyyyMMddHHmmss UTC)
  • Paginated fetching up to 2000 records per page using the x-total-count response header
  • The metrics API is only queried for the Service IDs present in active rows. Unlike the RUM, EXM and Health monitors there is no “fetch everything, filter afterwards” mode — each active row must carry a concrete Service ID
  • Per-row thresholds with standard G2W:80 W2M:90 syntax. Multi Threshold Syntax
  • Attributes Filter narrows which datapoints a row evaluates
  • Exclusive controls whether a matched datapoint is consumed or passed to later rows
  • Glob support for Metric and Service name fields (* = all; note: partial globs like *_situations do NOT work on Metric)
  • Optional alarm tag for grouping or routing
  • Auto-clear when alarm condition no longer matches
  • Load Services button: auto-discovers IEP service IDs and labels from the live tenant and populates Service name and Service ID in the table

Data Collection

Data collection populates Service name and Service ID from the Cloud ALM IEP service registry.

Always run data collection before adding rows. A service not returned by data collection does not have a usable Service ID.

Data collection runs one call:

  1. POST /api/calm-analytics/v1/analytics/providers/filters with body {“providerName”:“EVENTS”,“providerVersion”:“v1”} — returns the IEP service filter list. Extracts each service UUID and its label (e.g. S4H.100).

Click Load Services to run data collection and populate the surveillance table.

Why Service ID matters: the metrics API call adds &serviceId=<id1>,<id2>,… built only from the Service ID values of active rows. A row with an empty Service ID contributes nothing to this list. If every active row has an empty Service ID, no service ID is found, the input job skips the API call entirely, and the monitor collects no data at all.

Configuration

Method 1: Load Services

  1. Open monitor configuration
  2. Click Load Services
  3. Table populates with Service name and Service ID from the live tenant
  4. Enable rows, set thresholds, save

Method 2: Manual / Wildcard

  1. Set Metric = * to match all metric types for a service
  2. Service ID has no wildcard. Each active row must reference one concrete Service ID (UUID) obtained from data collection
  3. Service name = * only controls which rows a datapoint matches for publishing and alarms. It does not change which services are queried from the API — that is controlled by Service ID alone

Settings Reference

Field Type Default Description
Active Boolean true Enable or disable this row
Service name String * Glob matched against IEP service label e.g. S4H.100. * = all. Populated by data collection
Service ID String (empty) UUID of service. Required to query the metrics API for that service. Populated by data collection
Metric String * Metric type to match. Exact values only or *. See Metric types
Attributes Filter String (empty) Narrows datapoints. Format: key:value,key2:value2. Empty = no restriction
Thresholds String G2W:80 W2M:90 Alarm thresholds. Multi Threshold Syntax
Alarm tag String (empty) Optional tag appended to alarm message
Exclusive Boolean true If true datapoint is consumed by this row and not re-evaluated by later rows
Alarm Boolean true Enable alarm evaluation for this row
Metric Boolean true Publish metric datapoints for this row. If false evaluate alarms only

Metric types

Value Description
events Total number of events
event_situations Number of event situations
total_duration Total duration associated with events
tickets Number of tickets created
alerts Number of alerts raised
mails Number of mails sent
chat_messages Number of chat messages sent
operation_flows Number of operation flows triggered
* All of the above

Attributes Filter

Narrows which datapoints a row matches. All clauses must match (AND). Matching is case insensitive. Malformed clauses are silently ignored.

Attribute Description Example
serviceType Service type identifier S4
useCase Use case identifier EVENTS
serviceId UUID of the service 426ab4…
serviceName Service label S4H.100
eventName Name of the underlying event SYSTEM_DOWN

Example filter value:

eventName:SYSTEM_DOWN,serviceType:S4

Filter Evaluation Order

  1. No rows configured, or no active row carries a Service ID: nothing is collected. Add at least one active row with a Service ID to receive data.
  2. Service name: glob matched against IEP service label. S4H* matches S4H.100. * matches all.
  3. Metric: exact match only. * matches all types. Partial globs do NOT work.
  4. Attributes Filter: all clauses must match. Empty = match all datapoints.
  5. Exclusive = true: datapoint consumed by first matching row. Later rows skip it.
  6. Metric = false: row evaluates alarms but publishes no metric datapoints.

Collected Metrics

Base key: promonitor.cloud_alm.iep.*

Metric key Unit Description
promonitor.cloud_alm.iep.events - Total number of events
promonitor.cloud_alm.iep.event_situations - Number of event situations
promonitor.cloud_alm.iep.total_duration - Total duration associated with events
promonitor.cloud_alm.iep.tickets - Number of tickets created
promonitor.cloud_alm.iep.alerts - Number of alerts raised
promonitor.cloud_alm.iep.mails - Number of mails sent
promonitor.cloud_alm.iep.chat_messages - Number of chat messages sent
promonitor.cloud_alm.iep.operation_flows - Number of operation flows triggered

Tags published with each datapoint: service.name sap.service.name service.namespace service.instance.id sap.service.display_name plus datapoint-level tags serviceType useCase serviceId serviceName eventName

Alarm Evaluation

Alarms use a suppression key to deduplicate. Format:

  • {monitorId}_{connectorId}_alm_iep_{service}_{metric}_{rowIdx}

One alarm per unique key. A new value overwrites the previous alarm state for the same key.

Time Window

The time window is computed at collection time using 5-minute alignment with a 1-minute delay:

adjustedNow = UTC.now() - 1 minute
minuteFloor = floor(adjustedNow.minute / 5) * 5
to   = adjustedNow with minute=minuteFloor, second=0, nanosecond=0
from = to - 5 minutes

Example at 14:37 UTC: from=20260601143000 to=20260601143500

This ensures the query always covers a complete 5-minute window that the IEP backend has already finalized.

Examples

1. Collect all metric types for one service

Active Service name Service ID Metric Attributes Filter Thresholds Exclusive Alarm Metric
true S4H.100 426ab4-… * (empty) G2W:80 W2M:90 true true true

Service ID is mandatory — there is no equivalent of “empty table = publish everything” for this monitor.

2. Alarm on event count above threshold

Active Service name Service ID Metric Attributes Filter Thresholds Exclusive Alarm Metric
true S4H.100 426ab4-… events (empty) G2W:1 W2M:10 true true true

Alarms as soon as 1 event appears. G2W:1 means any non-zero value triggers warning.

3. Alarm on a specific event name only

Active Service name Service ID Metric Attributes Filter Thresholds Exclusive Alarm Metric
true S4H.100 426ab4-… events eventName:SYSTEM_DOWN G2W:1 W2M:5 true true true

Only datapoints where eventName = SYSTEM_DOWN are evaluated.

4. Alarm on open tickets without publishing metrics

Active Service name Service ID Metric Attributes Filter Thresholds Alarm tag Exclusive Alarm Metric
true S4H.100 426ab4-… tickets (empty) G2W:1 W2M:5 TICKETS true true false

Metric = false: alarms fire but no datapoints written to time-series.

5. Monitor alerts and mails with different alarm tags

Active Service name Service ID Metric Attributes Filter Thresholds Alarm tag Exclusive Alarm Metric
true S4H.100 426ab4-… alerts (empty) G2W:1 W2M:5 IEP_ALERT true true true
true S4H.100 426ab4-… mails (empty) G2W:5 W2M:20 IEP_MAIL true true true

Each metric type gets its own alarm tag. Exclusive rows prevent cross-matching.

6. Two services with different thresholds

Active Service name Service ID Metric Attributes Filter Thresholds Exclusive Alarm Metric
true S4H.100 426ab4-… events (empty) G2W:1 W2M:5 true true true
true S4H.200 9b21cd-… events (empty) G2W:5 W2M:20 true true true

Each row queries its own Service ID. Thresholds are independent per service.

7. Suppress an informational metric from alarming

Active Service name Service ID Metric Attributes Filter Thresholds Exclusive Alarm Metric
true S4H.100 426ab4-… operation_flows (empty) G2W:80 W2M:90 true false false
true S4H.100 426ab4-… * (empty) G2W:80 W2M:90 true true true

Row 1 consumes operation_flows (Exclusive = true, Alarm = false, Metric = false). Row 2 handles the remaining measures for the same service.

Troubleshooting

Symptom Check
No data collected even though rows are Active Every active row has an empty Service ID. The metrics API is never called without at least one. Run Load Services and fill the row.
Empty table after Load Services Connector uses CLOUD_ALM auth. Service key is valid. Tenant has active IEP data.
Service name in row does not match Run data collection again. Use only labels returned by Load Services. Do not type service names manually.
HTTP 401 or 403 Regenerate service key in BTP instance. Verify OAuth scopes are set.
Metrics show 0 but Cloud ALM has data Some measures legitimately report 0 for the 5-minute window. Check filter and attribute values match actual data.
Alarms not triggering Row is Active. Alarm is enabled. Service ID is set. Metric and Service name match incoming data. Threshold syntax is correct.
No metrics stored when data exists Enable Metric on the relevant row.
Stale data after adding new services Click Load Services again or wait for the next scheduled run.

Limitations

  • Metric field does not support partial glob patterns. *_situations does NOT match event_situations. Use exact values or *.
  • Service ID is not optional like in the other ALM monitors: without it on at least one active row, the monitor collects nothing for that service.
  • Malformed Attributes Filter clauses are silently ignored. Validate format before saving.
  • Exclusive = true means first matching row wins. Order rows from most specific to most general.
  • Thresholds apply to the raw numeric value of the selected metric.
products/promonitor/latest/monitorsguide/sap_cloud_alm/intelligent_event_processing_monitor.txt · Last modified: by luis