Monitor SAP Cloud ALM health, jobs, integrations, and project analytics in Dynatrace with analytics metrics, OTel logs, and Real User Monitoring traces.
The SAP Cloud ALM extension integrates Dynatrace with the SAP Cloud ALM Analytics API and Raw Data Outbound APIs. It collects operational metrics from analytics data providers, ingests OTel-formatted logs, and forwards RUM traces to Distributed Tracing.
xs-security.authorities block at instance creation time (see SAP Cloud ALM API scopes)openTelemetryTrace.ingest scope (required only when the Raw Data Outbound Traces feature is enabled)Setup has four steps. Create the SAP Cloud ALM API service instance in SAP BTP, activate the extension in Dynatrace Hub, create a monitoring configuration, and verify that data arrives. The prerequisites are listed under Requirements.
The extension authenticates with OAuth 2.0 client credentials from an SAP BTP service key.
xs-security JSON with the scopes for the feature sets you plan to enable. See Example xs-security configuration for the BTP service instance./api to get the SAP Cloud ALM Base URL, for example https://<tenant>.<region>.alm.cloud.sap.uaa.url value. Append /oauth/token to get the SAP Cloud ALM Token URL, for example https://<tenant>.authentication.<region>.hana.ondemand.com/oauth/token.uaa.clientid and uaa.clientsecret.You set scopes when you create the instance. To add one later, update the instance parameters and create a new service key. If a scope is missing, SAP Cloud ALM returns HTTP 403 for that provider and the extension skips it.
Activate the SAP Cloud ALM extension in Dynatrace Hub. Activation deploys the extension package, which includes the collection code, metric and topology definitions, dashboards, and alert templates.
Add a monitoring configuration and select an ActiveGate group that can reach SAP Cloud ALM (see Connectivity). Each configuration monitors one SAP Cloud ALM tenant.
| Field | Required | Description |
|---|---|---|
SAP Cloud ALM Base URL | Yes |
|
Authentication Type | Yes | OAuth for production tenants. API Key works only with the SAP Business Accelerator Hub sandbox ( |
SAP Cloud ALM Token URL | Yes, for OAuth |
|
Use credential vault | No | Read the client ID and secret from a Dynatrace credential vault entry instead of entering them here. Default: off. |
Select vault credentials | Yes, with credential vault | A |
SAP Cloud ALM Client ID / Client Secret | Yes, for OAuth without vault |
|
SAP Cloud ALM API Key | Yes, for API Key | Your SAP Business Accelerator Hub API key. |
Proxy | No | Proxy address, for example |
Each analytics provider maps to a feature set, and the extension only polls providers whose feature set is enabled. See Feature sets.
| Field | Description |
|---|---|
Frequency for Analytics Providers | Polling interval per provider, from 1 to 1440 minutes. The extension polls unlisted providers every minute. Use longer intervals for slow-changing project data such as Projects, Tasks, or Tests Analytics. |
Project Filters > Project State | Collect data for Active, Archived, or All projects. Default: Active. Applies to Projects, Defects, Requirements, Tasks, and Tests Analytics. |
Project Filters > Project Name Filter | Include only projects whose name contains one of the listed values (case-sensitive). Leave empty to include all projects. |
Project Filters > Per-Provider Project Filters | Override the project name filter for a single provider, for example to narrow Tasks Analytics on large tenants without narrowing the others. |
KPI Filters > KPI Name Filter | Business Process Monitoring only. Include only KPIs whose name contains one of the listed values (case-sensitive). |
Real User Monitoring Filters > Capture User Name and Request Information | When on, the extension ingests RUM data as log events with user and request details, and stops reporting RUM metrics. Requires the |
You set up these sources in the monitoring configuration. They're independent of feature sets. See Raw data outbound configuration.
5M. Keep it at least as long as the frequency to avoid gaps.exm.*, event domain and source for bsm, use case for iep, and job type and name for jam.*. For im, IM Category is required (for example, SAP Integration Suite Messages). If it's empty, the extension skips the im source.https://<environment-id>.live.dynatrace.com.openTelemetryTrace.ingest scope.bsm-service/v1/events) and ingests individual Disruption, Degradation, Maintenance, and other events as log events. Requires calm-api.bsm.read. You can filter by service class (BusinessService, CloudService, TechnicalSystem), event type, service name, and service type.Open the monitoring configuration and check that its status is OK. A 403 error in the status or the extension log means a scope is missing for an enabled feature set.
After a few minutes, run the following query in
Notebooks to confirm that metrics are arriving:
timeseries requests = sum(sap.calm.totalApiRequests), by: {cloud.alm.instance}
This metric requires the Cloud ALM API Metrics feature set.
If you configured OTel Logs Sources or BSM Service Events Sources, check for log events:
fetch logs| filter isNotNull(cloud.alm.instance)| limit 20
If you configured OTel Traces Sources, open Distributed Tracing and check for traces from SAP Cloud ALM.
You set scopes on the BTP service instance when you create it. A request made with a token that lacks a required scope returns HTTP 403.
These two scopes are required for all analytics data providers:
| Scope | Purpose |
|---|---|
| Access to all Analytics API data providers |
| Access to the provider catalog ( |
Each analytics feature set requires its own scope in addition to the base analytics API scopes. "Personal" scopes expose user-identifiable data (processor names, responsible users, tester IDs) and are optional. Omit them if personal data access isn't required.
| Scope | Provider ID | Feature Set | Notes |
|---|---|---|---|
|
| Health Monitoring | |
|
| Business Process Monitoring | |
|
| Monitoring Events | |
|
| Status Events | Also covers BSM analytics and the Raw Logs |
|
| Job Monitoring | |
|
| Exception Monitoring | |
|
| Integration Monitoring | Also covers all integration provider variants |
|
| Real User Monitoring | |
|
| Real User Monitoring | Optional (personal/user data) |
|
| Synthetic User Monitoring | |
|
| Business Services Analytics | Same scope as Status Events |
|
| Configuration & Security Analysis | |
|
| Projects Analytics | Public project data |
|
| Projects Analytics | Protected project data |
|
| Projects Analytics | Private project data |
|
| Defects Analytics | |
|
| Defects Analytics | Optional (processor user data) |
|
| Features Analytics | |
|
| Features Analytics | Optional (responsible user data) |
|
| Requirements Analytics | |
|
| Requirements Analytics | Optional (processor user data) |
|
| Tasks Analytics | Also covers tasks, defects, and requirements data |
|
| Tasks Analytics | Optional (processor user data) |
|
| Tests Analytics | |
|
| Tests Analytics | Optional (tester ID data) |
|
| Quality Gates Analytics | |
|
| Quality Gates Analytics | Optional (processor user data) |
GET /api/calm-logs/v1/logs| Scope | Log Provider(s) |
|---|---|
|
|
|
|
|
|
|
|
|
|
GET /api/calm-traces/v1/traces| Scope | Traces Provider |
|---|---|
|
|
The following example includes the scopes for all non-personal feature sets (recommended and optional). Remove the scopes for any feature sets you don't enable.
{"xs-security": {"xsappname": "CALMExtensionAPI","authorities": ["$XSMASTERAPPNAME.calm-api.analytics.read","$XSMASTERAPPNAME.calm-api.analytics.providers.read","$XSMASTERAPPNAME.calm-api.hm.read","$XSMASTERAPPNAME.calm-api.bm.read","$XSMASTERAPPNAME.calm-api.iep.read","$XSMASTERAPPNAME.calm-api.bsm.read","$XSMASTERAPPNAME.calm-api.jobs.read","$XSMASTERAPPNAME.calm-api.exm.read","$XSMASTERAPPNAME.calm-api.integration-monitoring.read","$XSMASTERAPPNAME.calm-api.rum.read","$XSMASTERAPPNAME.calm-api.sum.read","$XSMASTERAPPNAME.calm-api.csa.read","$XSMASTERAPPNAME.calm-analytics.projects.read","$XSMASTERAPPNAME.calm-api.projects.protected.read","$XSMASTERAPPNAME.calm-api.projects.private.read","$XSMASTERAPPNAME.calm-api.defects.read","$XSMASTERAPPNAME.calm-api.features.read","$XSMASTERAPPNAME.calm-api.requirements.read","$XSMASTERAPPNAME.calm-api.tasks.read","$XSMASTERAPPNAME.calm-api.tests.read","$XSMASTERAPPNAME.calm-api.qgates.read"]}}
Configure raw data outbound sources in the monitoring configuration under otel_logs_sources and otel_traces_sources. To enable a source, add its provider value to the corresponding list. Raw data outbound sources are separate from feature sets.
| Provider Value | Description | Required SAP Cloud ALM Setting |
|---|---|---|
| Exception Monitoring (Integration Monitoring) | None |
| Exception Monitoring (Job Automation Monitoring) | None |
| Business Services Management status events | None |
| Integration Monitoring | The |
| Monitoring Events | Store Event Payload for 24 Hours must be enabled in SAP Cloud ALM |
| Job Automation Monitoring (Definition Logs) | None |
| Job Automation Monitoring (Runtime Logs) | None |
| Job Automation Monitoring (Runtime Step Logs) | None |
Log records are ingested as Dynatrace log events via the Extensions SDK report_log_event() call.
| Provider Value | Description |
|---|---|
| Real User Monitoring traces (OTel |
Traces are forwarded to the Dynatrace OTel Trace Ingest API (POST /api/v2/otlp/v1/traces). Configure a Dynatrace API token with the openTelemetryTrace.ingest scope in the monitoring configuration under dt_trace_ingest.
The extension auto-discovers serviceId values from Analytics API provider data. By default, all discovered services are included for each enabled Raw Data Outbound provider. To restrict collection to specific services, provide a list of service names (not IDs) in the service_names configuration field. The extension resolves names to IDs at runtime.
The extension creates the following Dynatrace entity types:
| Entity Type | Identified By | Relationship |
|---|---|---|
|
| Root entity |
|
|
|
|
|
|
Analytics provider entities are also PART_OF the corresponding service entity when service data is present.
When activating your extension using a monitoring configuration, you can limit monitoring to one of the feature sets. To work properly, the extension has to collect at least one metric after the activation.
In highly segmented networks, feature sets can reflect the segments of your environment. Then, when you create a monitoring configuration, you can select a feature set and a corresponding ActiveGate group that can connect to this particular segment.
All metrics that aren't categorized into any feature set are considered to be the default and are always reported.
A metric inherits the feature set of a subgroup, which in turn inherits the feature set of a group. Also, the feature set defined on the metric level overrides the feature set defined on the subgroup level, which in turn overrides the feature set defined on the group level.
| Metric name | Metric key | Description |
|---|---|---|
| Job Run Time | sap.calm.dp_job_monitoring.runtime | Total runtime of the job execution |
| Job Average Run Time | sap.calm.dp_job_monitoring.averageruntime | Average runtime of job executions |
| Job Executions | sap.calm.dp_job_monitoring.executions | Total number of job executions |
| Job Success Count | sap.calm.dp_job_monitoring.success | Number of successful job executions |
| Job Warning Count | sap.calm.dp_job_monitoring.warning | Number of job executions with warnings |
| Job Aborted Count | sap.calm.dp_job_monitoring.aborted | Number of aborted job executions |
| Job Application Warning Count | sap.calm.dp_job_monitoring.applicationwarning | Number of job executions with application warnings |
| Job Application Error Count | sap.calm.dp_job_monitoring.applicationerror | Number of job executions with application errors |
| Metric name | Metric key | Description |
|---|---|---|
| Project Status | sap.calm.dp_projects.status | Status of SAP Cloud ALM projects |
| Metric name | Metric key | Description |
|---|---|---|
| Exception Count | sap.calm.exm_dataprovider.counter | Total number of exceptions detected |
| Metric name | Metric key | Description |
|---|---|---|
| Health Metric Value | sap.calm.hm_analytics_dp.value | Current value of the health metric |
| Health Metric Limit | sap.calm.hm_analytics_dp.limit | Configured limit for the health metric |
| Health Metric Usage | sap.calm.hm_analytics_dp.usage | Current usage percentage of the health metric |
| Health OK Status Count | sap.calm.hm_analytics_dp.okstatus | Number of health metrics in OK status |
| Health Warning Status Count | sap.calm.hm_analytics_dp.warningstatus | Number of health metrics in warning status |
| Health Critical Status Count | sap.calm.hm_analytics_dp.criticalstatus | Number of health metrics in critical status |
| Metric name | Metric key | Description |
|---|---|---|
| Number of Changes | sap.calm.ccdb_store_data.numchanges | Total number of configuration changes |
| Number of Stores | sap.calm.ccdb_store_data.numstores | Total number of configuration stores |
| Number of Items | sap.calm.ccdb_store_data.numitems | Total number of configuration items |
| Configuration Tickets | sap.calm.ccdb_store_data.tickets | Number of tickets associated with configuration stores |
| Configuration Alerts | sap.calm.ccdb_store_data.alerts | Number of alerts associated with configuration stores |
| Configuration Mails | sap.calm.ccdb_store_data.mails | Number of email notifications associated with configuration stores |
| Configuration Chat Messages | sap.calm.ccdb_store_data.chatmessages | Number of chat messages associated with configuration stores |
| Configuration Operation Flows | sap.calm.ccdb_store_data.operationflows | Number of operation flows associated with configuration stores |
| Metric name | Metric key | Description |
|---|---|---|
| Task Count | sap.calm.dp_tasks.counter | Total number of tasks |
| Task Story Points | sap.calm.dp_tasks.storypoint | Total story points for tasks |
| Task Effort | sap.calm.dp_tasks.effort | Total effort for tasks |
| Metric name | Metric key | Description |
|---|---|---|
| Event Duration | sap.calm.events_data_set.duration | Duration of status events |
| Event Data Set Count | sap.calm.events_data_set.counter | Count of status events |
| Metric name | Metric key | Description |
|---|---|---|
| Defect Count | sap.calm.dp_defects.counter | Total number of defects in projects |
| Metric name | Metric key | Description |
|---|---|---|
| Feature Count | sap.calm.dp_features.counter | Total number of features in projects |
| Metric name | Metric key | Description |
|---|---|---|
| Business Service SLA | sap.calm.bsm_analytics_provider.sla | Service Level Agreement percentage for business services |
| Business Service SLO | sap.calm.bsm_analytics_provider.slo | Service Level Objective percentage for business services |
| Metric name | Metric key | Description |
|---|---|---|
| Event Count | sap.calm.events.events | Total number of monitoring events |
| Event Situations | sap.calm.events.eventsituations | Number of event situations detected |
| Event Total Duration | sap.calm.events.totalduration | Total duration of events |
| Event Tickets | sap.calm.events.tickets | Number of tickets created from events |
| Event Alerts | sap.calm.events.alerts | Number of alerts generated from events |
| Event Mails | sap.calm.events.mails | Number of email notifications sent for events |
| Event Chat Messages | sap.calm.events.chatmessages | Number of chat messages generated from events |
| Event Operation Flows | sap.calm.events.operationflows | Number of operation flows triggered by events |
| Metric name | Metric key | Description |
|---|---|---|
| SUM Not Available Count | sap.calm.sum_dataprovider.notavailable | Number of synthetic monitoring scenarios not available |
| SUM Available Count | sap.calm.sum_dataprovider.available | Number of synthetic monitoring scenarios available |
| SUM Availability Not Rated Count | sap.calm.sum_dataprovider.availabilitynotrated | Number of synthetic monitoring scenarios with availability not rated |
| SUM Execution Count | sap.calm.sum_dataprovider.executions | Total number of synthetic monitoring executions |
| SUM Critical Performance Count | sap.calm.sum_dataprovider.criticalperformance | Number of synthetic monitoring scenarios with critical performance |
| SUM Poor Performance Count | sap.calm.sum_dataprovider.poorperformance | Number of synthetic monitoring scenarios with poor performance |
| SUM Good Performance Count | sap.calm.sum_dataprovider.goodperformance | Number of synthetic monitoring scenarios with good performance |
| SUM Performance Not Rated Count | sap.calm.sum_dataprovider.performancenotrated | Number of synthetic monitoring scenarios with performance not rated |
| SUM Response Time | sap.calm.sum_dataprovider.responsetime | Response time for synthetic monitoring scenarios |
| Metric name | Metric key | Description |
|---|---|---|
| Requirement Count | sap.calm.dp_requirements.counter | Total number of requirements in projects |
| Metric name | Metric key | Description |
|---|---|---|
| Total API Requests | sap.calm.totalApiRequests | Total number of API requests made to SAP Cloud ALM |
| Total Response Size | sap.calm.totalResponseSize | Total size of API responses received from SAP Cloud ALM |
| Data Provider Execution Time | sap.calm.dpProviderExecutionTime | Time taken to execute the data provider API call |
| SAP Cloud ALM Service | sap.calm.services | Presence metric emitted once per (service, provider) pair to anchor topology node extraction and edges |
| Metric name | Metric key | Description |
|---|---|---|
| Quality Gate Count | sap.calm.dp_qgates.counter | Total number of quality gates |
| Quality Gate Checklist Count | sap.calm.dp_qgates.checklistcounter | Total number of quality gate checklist items |
| Metric name | Metric key | Description |
|---|---|---|
| Test Total | sap.calm.dp_tests.total | Total number of tests executed |
| Metric name | Metric key | Description |
|---|---|---|
| RUM Response Time | sap.calm.dp_rum_request_types.responsetime | Real user monitoring response time for requests |
| RUM User Count | sap.calm.dp_rum_request_types.users | Number of users making requests |
| RUM Request Count | sap.calm.dp_rum_request_types.requests | Total number of user requests |
| RUM OK Status Count | sap.calm.dp_rum_request_types.okstatus | Number of requests with OK status |
| RUM Warning Status Count | sap.calm.dp_rum_request_types.warningstatus | Number of requests with warning status |
| RUM Critical Status Count | sap.calm.dp_rum_request_types.criticalstatus | Number of requests with critical status |
| Metric name | Metric key | Description |
|---|---|---|
| KPI Value | sap.calm.kpi_history_totals.kpivalue | Key Performance Indicator value for business process monitoring |
| Metric name | Metric key | Description |
|---|---|---|
| Integration Message Count | sap.calm.cpi_messages.count.gauge | Number of integration messages processed |
You can enable or disable each feature set independently.
| Feature Set | Provider ID | Metrics |
|---|---|---|
Cloud ALM API Metrics | None | Total API requests, response size, data provider execution time |
Projects Analytics |
| Project status |
Business Process Monitoring |
| KPI values by KPI ID, name, and category |
Monitoring Events |
| Event count, situations, duration, tickets, alerts, notifications |
Status Events |
| Event duration and count by type and status |
Health Monitoring |
| Value, limit, usage, OK/warning/critical status counts |
Job Monitoring |
| Executions, runtime, success, warning, aborted, app warning, app error |
Defects Analytics |
| Defect count by project, scope, status, and priority |
Features Analytics |
| Feature count by project, scope, requirement, status, and priority |
Requirements Analytics |
| Requirement count by project, status, priority, and approval |
Tasks Analytics |
| Task count, story points, and effort by type and status |
Tests Analytics |
| Test totals by project, scope, type, and status |
Quality Gates Analytics |
| Quality gate count and checklist count by project and status |
| Feature Set | Provider ID | Metrics |
|---|---|---|
Exception Monitoring |
| Exception count by service and category |
Integration Monitoring (SAP Integration Suite) |
| Message count by service, artifact, and status group |
Real User Monitoring |
| Response time, user count, request count, and status indicators by request type |
Synthetic User Monitoring |
| Availability, performance ratings, executions, and response times |
Business Services Analytics |
| SLA and SLO percentages by business service |
Configuration & Security Analysis |
| Changes, stores, items, and notification counts per store |