Showing results for 
Show  only  | Search instead for 
Did you mean: 

Q&A to the SAP ABAP and Citrix Application Monitoring webinar October 29, 2019

Dynatrace Champion
Dynatrace Champion

On October 29, 2019 we ran a Performance Clinic - SAP and Citrix Enterprise Application Monitoring with Dynatrace. Recording of this webinar is available on


And Dynatrace University:

There have been lots of questions asked by the audience during the webinar and we ran out of time to address them all. In this article, we’d like to answer these questions.


Is the SAP ABAP extension an ActiveGate plugin or OneAgent plugin?

  • It's an ActiveGate plugin. SAP ABAP is monitored remotely by the ActiveGate plugin. The plugin sends data to Dynatrace using custom device metrics and an Open Kit implementation.

How is the SAP ABAP monitoring extension related to the NAM/DCRUM?

  • SAP ABAP monitoring extension is a functional successor of the NAM/DCRUM decode for SAP GUI. Measurements provided by the Extension directly relate to the NAM's Operation time and errors reported per SAP GUI user and T-Code. However, measurement method is completely different. The Extension uses remote monitoring through an API provided by the SAP server. NAM used the network traffic sniffing in front of the SAP server.

Does the SAP ABAP monitoring plugin require ABAP code instrumentation?

  • Dynatrace SAP monitoring extension doesn't perform any SAP code instrumentation. No injections, no code decoration, no re-compilation, no ABAP stack operation interrogation. Dynatrace uses only public SAP interfaces, remotely, actually the same ones that SAP's Solution Manager uses. ABAP stack monitoring doesn't require installing any agent.

What metrics are gathered when SAP is making requests to an unmonitored host?

  • This depends on the kind of unmonitored server that is called by the SAP server. If the unmonitored ever is the SAP's database server, then SAP server itself measures the database activity and response time - this is reported by the Extension. If the unmonitored server is another SAP server, contacted via RFC, then remote RFC endpoint is known to the SAP stack and can be reported (this is not provided by the Extension today, but we think of repotting such activities).

How about monitoring RFC calls the same way as the plugin does for T-Codes?

  • We work on the best ways to report RFC activity. RFC is different than SAP GUI, so our approaches also have to change. Bi-directional nature of RFC transactions requires us to find best ways of representing them in the Dynatrace entity model and on dashboards. This is in scope of the future Extension enhancements.

How to enable the SAP ABAP monitoring extension? What are the Installation, deployment requirements?

Does the SAP ABAP extension gather error/crash information?

  • Yes. ABAP short dumps (runtime errors) are reported as events and as a metric, together with brief information about the dump.

What are the differences between Dynatrace SAP ABAP monitoring and the SAP Solution Manager?

  • SolMan is an application lifecycle management solution and manages "everything SAP". Dynatrace extension focuses on user experience and platform/infrastructure performance of the SAP landscape. Dynatrace focus enables it to report on performance in simple, easy to understand terms and in combination with performance monitoring of the infrastructure that supports SAP. This enables efficient collaboration between SAP Basis team and non-SAP professionals. SolMan remains the primary go-to tool for the SAP Basis.

What is the availability timeline of the SAP plugin?

  • SAP ABAP monitoring extension is generally available since January 2020. Contact Dynatrace ONE or your account manager to get it installed.

Can Dynatrace monitor ABAP code down to the call stack level, like it does for Java?

  • SAP ABAP stack is very different from Java. There are no ABAP code-level execution monitoring and real-time transaction tracing means available to 3rd-party vendors and supported by SAP for the ABAP. Dynatrace doesn't perform any SAP code instrumentation, injections and doesn't advise on any ABAP code decoration. Dynatrace uses only public SAP interfaces and thus no ABAP code visibility is provided. If you need SAP ABAP transaction tracing, use SAP's native means of the on-demand tracing, provided by SAP in Solution Manager.

Does the SAP ABAP extension support BW, PI and other SAP modules? Does it work with SAP Java systems?

  • SAP ABAP monitoring extension has been developed and tested on SAP ECC and S/4HANA systems. We don't offer a ready-to-use, out-of-the-box extension to monitor BW, PI and other systems - but our Extensions team would be happy to work with you on building a solution to address your requirements in these areas. Existing extension serves a great starting base for the custom extension development.

Which SAP versions are supported by the extension?

  • SAP ABAP monitoring extension has been developed and tested on ECC version 7 (EHP7 FOR SAP ERP 6.0) and S/4HANA 1909

Does the Dynatrace plugin require SAP Solution Manager to be present?

  • No. The plugin connects directly to the AS ABAP and S/4HANA servers, using RFC protocol.

Does the SAP plugin monitor only GUI response time or the background jobs too?

  • SAP GUI transactions are monitored per user and per transaction name, as well as per server. Background tasks on SAP server, like SPOOL, UPDATE and others, are monitored per server and reported by the Extension as metrics that characterize custom device that the Extension creates in Dynatrace. Number of executions, response time, and time breakdown per task types can be charted on dashboard or events/alerts can be generated using these metrics.

What are the T-Codes exactly? Are these just the Windows GUI transactions?

  • T-Codes are transactions that SAP server maintains. They can be executed via GUI - that’s what SAP GUI for Windows does. There is also SAP Fiori, which is a modern web interface to SAP server, SAP GUI for HTML (legacy web UI), and for Java (rarely used) and these also trigger T-Code executions. RFC calls (server to server) can also execute T-Codes, among other functions that may be exposed via APIs that RFC services. SAP GUI for Windows remains by far the most popular user interface. SAP plugin repots on user experience working with T-Code executions over GUI for Windows. Regular Dynatrace RUM can report on user experience with the Fiori screens (browser pages/actions). These are not T-Codes, but the web UI to the T-Code executions. BTW, in SAP GUI for Windows there also are more granular entities than T-Codes - there are T-Code screens, typically several per T-Code, and we report both the T-Code and its screen number.

Does the SAP plugin monitor only T-codes, but not RFC?

  • SAP plugin monitors RFC tasks, as well as all other SAB ABAP sever tasks (DIALOG, SPOOL, UPDATE and many more). The plugin reports on server performance and client experience for these tasks and potentially 20+ other tasks that SAP server performs. These measurements are per server and task type, but not per transaction and user. So generally it’s not correct that we don't report RFC performance. We just report it on different level - no RFC call name. Currently we think how to improve RFC reporting, but with to date/feature commitments.

What are the licensing requirements of the SAP monitoring extensions?

  • DEM licenses are needed to monitor per-user, per-transaction executions of the T-Codes. DEM unit consumption is calculated the same way as with all other real user monitoring. We calculate it per session. A SAP GUI session starts when user logs on and ends when we don’t see this user activity for more than 30 min. Therefore this number may vary depending on the user activity over the day. If user logs on in the morning and stays active throughout the whole day, one session may be accounted. If a user logs on and executes one transaction per hour, remaining idle for the rest of the day - we may generate one session every hour. It is the same as with monitoring web applications.
  • Platform metrics require Metric Units. Ca. 60 metrics per monitored SAP server will be consumed.


Is the Citrix monitors extension an ActiveGate plugin or OneAgent plugin?

  • Citrix extension is comprised of two parts, both are installed on Citrix VDAs. One part extends the OneAgent, another part is an independent agent that runs on VDA and feeds Dynatrace RUM through an OpenKit implementation. ActiveGate is not involved for Citrix.

How to enable the Citrix monitoring extension? What are the Installation, deployment requirements?

Does the Citrix extension gather error/crash information?

  • Citrix monitoring extension doesn’t currently report on errors. Citrix receover-side errors are out of scope for now. Application-side errors are measured per application, using the technology that fits specific application. For example, errors that Citrix user will see in a published browser are measured by the browser agent (or JavaScript agent injected into the web page of the monitored web server).

Does the Citrix agent require full stack monitoring?

  • No, Citrix Agent works perfectly with OneAgent in the infrastructure monitoring mode.

Does the Citrix extension work for XenDesktop?

  • Citrix monitoring extension has to be installed on Citrix VDAs. In case of XD, it means it will work on the client desktop instance once the instance is brought to life. From this vantage point, it will report the same types of measurements as for XenApp, just individually per each desktop.

What is the availability timeline of the Citrix plugin?

  • Citrix monitoring extension is generally available since January 2020. Contact Dynatrace ONE or your account manager to get it installed.

Does the Citrix plugin report on client connection failures?

  • Citrix monitoring looks at users from the VDA vantage point. So, if users can’t connect to the VDA due to the network issues, or load balancer, or alike - Dynatrace won’s see it. Therefore, we recommend synthetic monitoring from the remote locations, testing the Citrix Web Interface (WI) availability. Additionally, the NetScaler monitoring extension would help in monitoring NetScaler’s influence on the connectivity.

How does the custom application for Citrix monitoring visible in Dynatrace relate to the Citrix published applications?

  • Custom application that you define in the Dynatrace UI exists only in Dynatrace, for reporting purposes. It has nothing to do with the published application names that Citrix delivers. These pub app names will be picked up automatically and reported by the Dynatrace extension, as "user actions".

On the Citrix application startup waterfall chart, the breakdown bars don't add up. Why?

  • Citrix is responsible for provisioning the session and then starting the app executable. Citrix stack activities are presented on chart as explicit values. These are known with certainty from Citrix WMI counters. Then the app executable starts and it has its startup time too. Citrix knows when the app window shows up and it can be painted on the user screen - that’s the end of the app startup reported by Citrix. Please note that it doesn't necessarily mean that at this moment the user can interact with the app. The app may still be initializing its internals, but this is not known to Citrix.

On the Citrix application startup waterfall chart, how to interpret the sequence of the bars? Do those events like occur in exactly that sequence?

  • In reality, events reported on this chart occur in groups, between which there may be user wait time involved. However, Citrix doesn't include this wait time in its counters, so we report them in the same way as Citrix does - reflecting time spent on the Citrix platform when launching an app, exploding time spent on user side, reading screen, choosing an icon, clicking etc. Roughly speaking, the user-Citrix interaction includes login+authentication, web interface page population, clicking on an app icon, receiving ICA file with the app whereabouts and launching the ICA file, which results in Receiver connecting to the app opened for user on the Citrix side. Citrix performance counters compress these activities to exclude times that user spent reading the screen or delaying ICA file opening, etc.

For more information:

Do you have more questions? Ask them here and tag with SAP or Citrix, we will do our best to address them all.



Kris, Thanks for this blog and helpful content on how ABAP monitoring can be accomplished in a non-intrusive manner. Can you confirm that SAP ABAP Extension does support SAP S4 HANA 1709 version ?

Is there any way to get this working in near future on 1709 S4 HANA ?

SAP extension works in our lab with S/4HANA 1809. We didn't test it with 1709. However, extension uses only standard RFC functions, so chances are high it would work. But you need to verify it yourself.

Best regards

DynaMight Champion
DynaMight Champion

Thanks for the insightful webinar, Q&A write-up, and SAP ABAP plugin!

We have it running in Preview at two clients and I've had the same question from both: are there any plans to allow T-codes to be grouped together e.g. by function, module or business unit? In NAM we could create BU's and group certain T-code operations together to create views on FI, PM, HR etc. and it also auto-displayed the task and module to which the T-code belongs.

Hi, In the next version we'll have better user action names (include module and task name), and then you can do some grouping in USQL.


DynaMight Champion
DynaMight Champion

Hi Michael, the latest version works quite nicely, especially in conjunction with the USQL queries - thanks for that.

Is it possible to rename user actions (t-codes) when there are custom t-codes involved? I've looked at naming rules, but they don't quite do what I need: say the custom t-code is /ABC/RT_PI_CAP_CNT, where RT='Retail' and I want to rename that to 'Retail PI_CAP_CNT' I don't think that's currently possible?

I could set up a rule that would rename any custom t-code which starts with /ABC/RT_ to 'Retail' but I'd like to retain the portion after the RT_ in the resulting name too, similar to e.g. 'Sales and Distribution - VF02 (Change Billing Document)' which is a standard SAP t-code. I assume these standard t-codes are somehow auto-detected and renamed in the plugin?

Is there any way to achieve the same for custom t-codes?

The current translation is done in a translation csv that is placed in the jar file in the remote plugin directory.
You could go into that file and add additional ones in there and then kill the java process so it starts up again, but you'd lose your changes on every update, which is not optimal.

I'll add a backlog item of letting you point to an additional csv for your custom t-codes unless user action renaming will be able to handle it soon. I'll point one of the product managers in this direction.


DynaMight Champion
DynaMight Champion

Thanks for the feedback, Michael; I looked for the csv file but only found a .esv file, which looks like the one you're referring to - I can open it in a text editor, but it seems the file uses an encoding format which is not standard to that of csv/txt format.

I'm hoping at some point in the near future, user action renaming will be able to handle it or via the other alternative you mentioned.

Another question, if I may: I see a lot of 'Unknown' GUI versions or in some cases, the GUI version is just blank (empty). What could cause this and is there something I can do to resolve that?

It's indeed that esv file. It's in UTF-8 with euro signs as seperate character (ergo esv 😄 )

The unknown GUI version is curious, could it be that the users don't connect directly the the SAP server? We request a list of all logged in users from SAP every minute (using TH_USER_LIST) and cache the version of users for up to 7 days if they reconnect.


Same on my customers:

Does those users connect directly to the SAP application server instance using SapGUI?


All the Batch and RFC Users have "unknown" or " " . There are some real users, which have sometimes versions, sometimes "unknown" and " ". I cannot track, if they are using SAP GUI, I assume, but maybe also a redirect from one SAP System to the other...

That's indeed expected based on the manner that SAP is able to provide the version information per user.



Now that you have released the Citrix plugin yesterday, how do I get the latest one? Will it be a separate download or will it come with the next platform update?


Now that the Citrix extension is GA there will soon be an email going out that it is no longer free. Please talk to your account manager to look into purchasing it.



DynaMight Champion
DynaMight Champion

One prospective client is concerned about the 1-min frequency at which the plugin will query the SAP system, suggesting we could cause overhead e.g. response time increase on their SAP system.
Also, they want to know how much data do we 'extract' e.g. traffic volumes since their users are global and the data centre is in Europe. Do we have any hard facts regarding these, apart from what's listed in this forum thread and the documentation?


We have the extension running in several production systems of some of the largest SAP installations in the world without seeing any issues with overhead.

The traffic volume will depend on the system. If you install it we drop the size of data we extract into the extension log file.



Regarding 1-minute intervals: The fact that we use such frequent polling helps generating lower load on the whole system. 1-minute data can be served entirely from SAP app server RAM, with no database interrogation. Longer intervals would force SAP to go to the database for aggregate data. SAP creates those aggregates automatically (that's an internal SAP task, we don't manage it) and writes them to the database. 1-min data is available without aggregates and without the need to go to the database.

Featured Posts