Contact Us
×
How you can contact us:

Next Generation – Data Collection Infrastructure

This guide describes how a cloud application can be enabled for SAP Cloud ALM via the OpenTelemetry (OTEL) based Next Generation – Data Collection Infrastructure (NG-DCI). Specifically, this guide describes how the OTEL data collection for Real User Monitoring in SAP Cloud ALM can be achieved. For SAP Cloud ALM Real User Monitoring both frontend and backend measurements are leveraged.

The Next Generation – Data Collection Infrastructure consists of the Data Collection Instrumentation (DCI), DCR (BTP service) and SAP Cloud ALM (including the Data Routing Infrastructure, DRI). The actual instrumentation is done with DCI.

Below you can find the broader concept and architecture diagram:

 

Currently only Real User Monitoring and Health Monitoring are able to consume data provided by NG-DCI. However, several other use cases of SAP Cloud ALM for operations are planned.

We start with the integration of BTP CF with SAP Cloud ALM as target platform. However, we will enable SAP Focused Run in the future to also consume data provided by NG-DCI. So the instrumentation at managed service side needs to be done only once. Please be aware, that all functionalities in yellow boxes are future plans. 
 

Prerequisites

The cloud application to be monitored may consist of several micro services and run on SAP BTP Cloud Foundry.


Java

At least one Java application handling Front-end Statistical Records (FESR) requests must exist and must be implemented using Spring Boot.


Node.js or CAP (JavaScript) based

At least one node.js application handling Front-end Statistical Records (FESR) requests must exist and use express.js.


Configure Settings with Download Link

The OTEL ALM Libraries are shipped by SAP Repository Based Shipment Channel (RSBC). Request the technical user name and password in the RBSC UI https://ui.repositories.cloud.sap/www/webapp/users. For a full documentation of the RBSC please see the RBSC documentation https://shipments.pages.repositories.cloud.sap/docs/.

Please use these versions for JAVA:

  • otel-agent-ext-java: Version 1.5.0
  • calm-crun-client-api-java: Version 1.4.0
  • fesr-to-otel-java: Version 1.5.0

and these versions for Node.js

  • xotel-agent-ext-js: Version 1.5.0
  • fesr-to-otel-js: Version 1.3.1

For a complete version history, please check the following Version Update for Data Collection Instrumentation Libraries (SAP Help).

Java

For the Java OTEL ALM Libraries an integration in the SAP CF JAVA Buildpack is planned for later, in that case no integration into the Maven build is required as the libraries are already included in the buildpack itself. For now, you have to include the library as a maven dependency:

  • Add artifactory as repository in pom.xml

<repositories>
<repository>
<id>***artifactory-id***</id>
<url>https://73555000100200018064.mavensrv.base.repositories.cloud.sap</url>
</repository>
</repositories>

  • Update settings.xml pointing to technical user credentials for the artifactory

    Note - It is recommended to store the password in a vault and reference it in the settings, so that it can be read during maven build and pipeline deployment!

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>**artifactory-id**</id>
<username>***technical-user-name read from vault***</username>
<password>***password read from vault***</password>
</server>
</servers>
</settings>


Node.js or CAP (JavaScript)

In your .npmrc file, specify the credentials for the repository containing the OTEL ALM Libraries:

//73555000100200018064.npmsrv.cdn.repositories.cloud.sap/:_auth=<base64 encoded version of username:password>

The value for the _auth property is Base64 encoding of the combination of 'username:password' where the user name is the user name of the technical user. Respectively, the same holds for password.

Note - It is recommended to store the password in a vault and reference it in the settings, so that it can be read during build and pipeline deployment!

Enabling Frontend Data Collection

As of now, the only offered frontend measurements come from SAP UI5. For this, we leverage the Front End Subrecords measurement provided by the UI5 framework. Currently we only support "standalone" UI5 applications for front end measurements.

To instrument your own application with Frontend measuring there are three steps:

  • Configure your UI to gather frontend statistics and send them to a receiving endpoint
  • Configure your reverse proxy (e.g. approuter) to forward the FESR beacons from UI5
  • Provide an FESR receiver endpoint that will transfer the data to SAP Cloud ALM


Configure UI5

The first point can be achieved with a simple meta tag in your root index.html of your UI5 application. We will send the beacon to the /fesr endpoint (Note: depending on your project and routing setup this may contain an application specific prefix like in this example):

<meta name="sap-ui-fesr" content="/<optional app-specific-prefix>/fesr">

Here, the prefix is /<optional app-specific-prefix> is an application specific prefix example. It may or may not be necessary in your case. The endpoint /fesr is mandatory.


Configure Reverse Proxy

Since your UI application will likely use a reverse proxy to communicate with your backend you need to configure the /fesr route to be routed to the specific endpoint which will be configured in the next step. Usually, this is done by a central approuter. You must configure your central approuter to route the /fesr routes:

xs-app.json

{
"routes": [
{
"source": "^/fesr$",
"target": "/fesr",
"destination": "<destination pointing to your fesr receiver backend>",
"csrfProtection": false,
"authenticationType": "xsuaa"
}
]
}

Note that csrfProtection must be set to false.


Configure FESR Receiver

Now, that UI5 is sending the FESR beacons to /fesr they need to be received and transmitted to SAP Cloud ALM. For this, you need to include both the FESR receiver library as well as the OpenTelemetry data collection instrumentation:


FESR Receiver
  • FESR Receiver for Java
  • FESR Receiver for node.js

Data Collection Instrumentation


Configure Data Collection Instrumentation for Backend Services

To configure the data collection instrumentation for backend services you only need the respective autoinstrumentation:

Customer Support

In case you encounter problems using or setting up the Next Generation – Data Collection Infrastructure in SAP Cloud ALM, please report an incident using the following components:

  • SV-CLM-INF-DCR - Data Collection & Routing

Please select your SAP Cloud ALM tenant when reporting the incident.