Monday 3 July 2023

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).

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.

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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:

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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:

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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.

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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 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:

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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.

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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.

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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 BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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):

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
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.  Then I get notified by email if a critical number of records has been captured:

The notification email would look like this:

SAP BTP, SAP ABAP Environment, SAP ABAP Connectivity, SAP ABAP Development, SAP ABAP Career, SAP ABAP Skills, SAP ABAP Jobs, SAP ABAP Prep, SAP ABAP Preparation, SAP ABAP Guides, SAP ABAP Learning, SAP ABAP Certification
Notification Email

No comments:

Post a Comment