Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
anke_griesbaum
Associate
Associate
3,207

Since the ABAP environment of SAP BTP or SAP S/4HANA Cloud typically interacts with other BTP services, you may be interested in a performance monitoring of such outbound communication. In this blog post, I’ll show you how you can use the System Outbound Communication app in the ABAP environment. You can even get alerted by mail if the performance of a specific outbound service gets critical. In the example I’m describing here, I am logged on to an ABAP test system in the cloud in the role of a customer (with the administrator role).

Communication Scenarios

 

When you open the app, you first get an overview of the top 10 outbound communication scenarios by calling time of the past day. If there are multiple communication arrangements that belong to one scenario, they are aggregated to one column in the chart.

 

 

System Outbound Communication


The data shown in the System Outbound Communication app refers to the service types HTTP, RFC, and Web service. When you’re logged on in the role of a customer, you only get customer workload that was calling out using customer communication arrangements. SAP workload is filtered out, as well as customer workload that has implicitly used SAP communication arrangements.

The detail view displays the relevant single communication arrangements, sorted by calling time. By clicking on a specific communication scenario the detail view filters on the associated communication arrangements. If you now want to have a look at a specific arrangement, you can navigate further.

I choose the first communication arrangement from the list.

Communication Arrangement


Now I get the details for the communication arrangement SAP_COM_0542:

 

Communication Arrangement


The associated outbound services are displayed in a stacked chart. The columns in the chart display the aggregated calling times per service. You get an idea how the calling time of the outbound services has developed over time. In this example, there is only one outbound service. This service doesn’t perform evenly over time, but the peaks seem still within an acceptable range.

Let me give you some background information on the data enrichment:
Technically, the data comes from the ABAP statistics records, where you have for each client or consumer call a corresponding subrecord with the specific destination/logical port that was used. These destinations/logical ports were created during the activation of the communication arrangements. The collector framework enriches the ABAP statistics records with the metadata information about the communication scenarios, arrangements, and services.


Now, let's continue and check on some details. I’ve already shown you the first two screens of the System Outbound Communication app with their charts. These screens and charts use aggregates that were specifically built for the System Outbound Communication app. These aggregates are always complete in the sense that they are based on all ABAP statistics records in the system that belong to outbound calls. In addition to the aggregates, the app also displays samples of single ABAP statistics records.

In the Details section of the Communication Arrangement screen, you get samples of ABAP statistics records that were captured by the collector framework and stored in the database. You can now navigate further to the details of a specific record.

Single ABAP Statistics Record


I want to drill down more and choose the first entry in the list of ABAP statistics records, which leads me to the following screen:

 

ABAP Statistics Record

 

The HTTP section shows the outbound call that was executed. Again, I want more details and choose the little 'Details' arrow at the end of the row. Now I get all the information that the relevant ABAP statistics subrecord provides. In addition, the subrecord was enriched with the information about the communication details.

 

 

HTTP Client Call Details


The calling time in my example stayed within the average range. But if you want to capture single records of a communication arrangement where the calling time exceeds a certain threshold, you can define a dedicated capture profile as shown in the next section.

Capture Profile


Now, I’ve already mentioned that the collection framework behind the System Outbound Communication app processes all ABAP statistics records to create the aggregate values shown in the app. In addition, the app shows samples of single ABAP statistics records for the dominant workload in the system. To capture such samples, the framework uses profiles that are predefined in another app for the ABAP environment of SAP BTP and SAP S/4HANA Cloud, the Capture Request Statistics app.

Note that these predefined profiles in the Capture Request Statistics app capture samples of the dominant workload in the system. Therefore, it might happen that samples for the communication scenario you’re interested in are not captured due to the sampling rate or because they are below the thresholds of the predefined profiles.

That’s why you can also define your own profiles as I did in the following case:

 

Capture Profile


My profile captures every single record that meets the following criteria:

    • The single record contains a client call using the outbound service of the communication arrangement SAP_COM_0542.

 

    • The relevant calling time exceeds the threshold of 10,000 ms.



With these more fine-granular criteria, I can catch outliers. If such a performance deviation as shown here in the aggregate view of the Outbound Communication app occurs again in the future, I can ensure that the corresponding single record will be captured as well.

 

System Outbound Communication


Now this is exactly the kind of information that you would like to get. Let me show you another feature: You can also get alerted about such performance outliers.

Getting Alerted Using SAP Cloud ALM


Let’s return to the Capture Request Statistics app again where I set criteria for capturing samples of outbound communication. Here, you can also set the Health Monitoring option to Yes. In this case, the profile is integrated in the health monitoring of SAP Cloud ALM, provided that the health monitoring integration itself has already been set up.

 

Capture Profile


There, you can also configure an alert when a critical number of single ABAP statistics records were collected using your profile. In other words, you can get an alert from SAP Cloud ALM when an outbound communication call using a defined communication arrangement (in this example, SAP_COM_0542) exceeds a defined threshold (in the example, 10,000 ms).

Now, let’s call up SAP Cloud ALM and check out how this works in detail. In SAP Cloud ALM, I go to the Health Monitoring dashboard and check the tile Captured ABAP Statistics Records. It shows the total number of ABAP statistics records for all profiles with this option set. In my example the profile TEST_SAP_COM_0542 is the only one.

As long as the outbound communication performance of SAP_COM_0542 stays in the average range, the tile will display 0, meaning that 0 ABAP statistics records were captured during the last five minutes.
But when an outbound call exceeds the threshold of 10,000 ms, the counter in the tile increases. This can look like in the following screenshot:

 

SAP Cloud ALM: Health Monitoring


The tile tells me that 2 ABAP statistics records were captured during the last five minutes. By clicking, the history of the profile is displayed, showing how many records were captured in the past (in my case two):

 

Profile History


This is great, so I can watch out for expensive outbound communication that I’m particularly interested in just by monitoring the metric Captured ABAP Statistics Records in SAP Cloud ALM.

But no need to keep watching this all the time because I can also set up an alert in SAP Cloud ALM.
If you want to know how to set up such an alert in SAP Cloud ALM have a look at Monitoring the Health of the ABAP System in the Cloud. Then I get notified by email if a critical number of records has been captured:

The notification email would look like this:

 

Notification Email



Conclusion


With the System Outbound Communication app, you can easily identify expensive outbound communication and their related communication arrangements over time. Their details are displayed down to the service level and you can even drill down to the details for a single ABAP statistics record.

When you combine the System Outbound Communication app with the Capture Request Statistics app and SAP Cloud ALM, you can even target specific service requests of your own choice that cause for example expensive outbound communication and get sample data of the related RFC, HTTP, and Web service calls for further analysis. With the alert function in SAP Cloud ALM, you also get notified via email when the situation gets critical.

More Information


On SAP Help Portal, you get more detailed information about the System Outbound Communication app and its use:

System Outbound Communication | SAP Help Portal

Monitoring Expensive Outbound Communication

I’d like to thank everyone who contributed to this blog post, especially my colleagues steffen.siegmund, christiancop, sabine.reich, and karen.kuck.

 

2 Comments
Andre_Fischer
Product and Topic Expert
Product and Topic Expert
0 Kudos
Nice and informative blog post. 👍
Martin-Pankraz
Active Contributor
0 Kudos
Thanks for sharing anke.griesbaum. How do you deal with BTP-wide challenges? In such a case Cloud ALM  gets into trouble alongside the ABAP environment defeating its purpose of alerting.

I described cross-region approaches for SAP Cloud Integration (CPI) some time ago that are widely adopted now by customers and SAP guidance for this purpose.

Next to deploying the monitoring service in another BTP region, the most robust solution would be changing the tech stack too. For instance you may watch SAP Cloud operations with Teams messages using Azure Logic Apps.

Also I'd like to argue that emails are a bad fit for alerts by design compared to ad-hoc Teams push-notifications. Truth be told I still see many customers asking about emails though. I believe there is just a habit that is hard to shake and some workflows dependent on email post-processing.

KR

Martin