Monitoring the Performance of Outbound Communication in the ABAP Environment in the Cloud
Since the ABAP environment in SAP BTP 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).
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.
Now I get the details for the communication arrangement SAP_COM_0542:
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:
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.
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 in SAP BTP, 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:
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.
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.
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:
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):
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:
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.
On SAP Help Portal, you get more detailed information about the System Outbound Communication app and its use: