Download PDF
Download page Set Up SAP ABAP Agent.
Set Up SAP ABAP Agent
/DVD/APPD_CUST
.Connect to the AppDynamics Controller
To connect to your AppDynamics Controller:
Enter your AppDynamics host name and port number.
Note: 'Custom SSL file' filed is relevant only when On-Premises controller is used and SSL communication with it is needed. The field is pre-populated during steps of local automatic HTTP SDK installation, but needs to be manually set during remote manual HTTP SDK installation - see Install Custom Certificate for Remote HTTP SDK.
If your HTTP connection needs a proxy, enter a proxy host name and port number, optionally user and password if your proxy requires authentication:
The HTTP proxy is used only for connections to the AppDynamics Controller and event service. Communication with the HTTP SDK is direct.(Optional) When SSL connection to the controller (or event service) is used, the ABAP Agent is unable to directly reach the controller without an SSL identity.
Direct connection is used in these cases:
- Check controller connection status from SAP GUI
- Pass analytics event data to the Event Service
- Upload of dashboards directly to the controller
To setup the SSL connection:
Open the controller URL in a web browser and download all public certificates
Select the STRUST SSL identity where your certificate is uploaded in the STRUST SSL identity field under Additional SSL settings
Enter OAuth Client and OAuth Secret. See Creating API Clients (Cisco AppDynamics SaaS) and Creating API Clients (Cisco AppDynamics On-Premises). When OAuth settings are maintained, ABAP Agent will be able to use advanced controller APIs. The following features require OAuth settings:
- Custom analytics schema deletion - It requires the Analytics Administrator role.
- Health rule replication- It requires the Administrator role.
Configure SDK Settings
To configure the SDK settings:
- On SDK settings, enter an application name.
The application name should correspond to the application on the Controller. - Enter a tier name.
The default tier name is SAP system ID. - For local HTTP SDK execution, enter a port number that is used by the HTTP SDK instance on every application server of the SAP system.
- For remote HTTP SDK execution (through SDK Manager), enter the SDK manager host name and port.
Enter a unique HTTP SDK port for each application server under Node settings pane. See also SDK Manager. (Optional) Enable SSL for communication between ABAP Agent and SDK Manager.
SSL overhead
Carry out the following setup if you need to enable secure connection between SAP system, SDK Manager and remote HTTP SDK instances running on Linux Gateway system. This does not apply to HTTP SDK installed locally on a SAP application server.
Enabling SSL for SDK manager increases overhead for intercepted HTTP sessions that create business transaction. Leave this feature disabled when SSL security on this level is not necessary.
- Add certificates to SDK Manager
- Check the Use SSL checkbox under SDK settings
- Select the STRUST SSL identity where your certificates are uploaded in the SSL identity field
Configure Connection to Other AppDynamics Agents
The ABAP Agent can connect to other AppDynamics Agents and endpoints to provide more visibility into the SAP system. Set up the following connections to enable the additional functionalities:
- (Optional) Set up Machine Agent HTTP listener connection to enable forwarding of custom application events to the controller if HTTP SDK cannot be used. See Connect to AppDynamics Machine Agent and Application Event API Adapters.
- Set up Analytics Events API connection to enable replication of monitored data from SAP system as custom analytics data into the event service. See Connect to AppDynamics Event Service and Analytics and Analytics API Adapters.
- Set up Analytics Agent connection to enable business transaction analytics reporting from C++ SDK via Analytics Agent as transaction analytics data into the event service. See Connect to Analytics Agent.
Configure Incident Log
The incident log is used to temporarily deactivate instrumentation (soft deactivation) on an application server where ABAP Agent is not able to connect to the corresponding HTTP SDK instance. Incident log settings can be accessed from the toolbar using the Incident log button.
Behavior of Incident log can be adjusted with the following settings:
- Deactivation threshold - how many connection attempts need to fail before Incident log deactivates ABAP Agent integration on a particular application server
- Evaluation timeframe - connection attempt failures are recorded with a timestamp of the incident. List of incidents for deactivation threshold evaluation is selected based on timestamp that is not older than the current timestamp minus evaluation timeframe (seconds)
- Reactivation wait - Incident log waits this many seconds before ABAP Agent integration is automatically restored. This also resets the list of incidents that occurred before the deactivation.
With the default settings, when ABAP Agent fails to connect to HTTP SDK instance on a specific application server, Incident log records this as a new incident, selects list of incidents of this application server not older than 5 minutes (600 seconds). If 10 or more incidents are selected, Incident log deactivates ABAP Agent integration on this application server for 1 minute (60 seconds). Once ABAP Agent attempts to connect to HTTP SDK after reactivation wait time, Incident log automatically reactivates ABAP Agent integration on this application server.
Incident log settings can be adjusted to achieve more integration up time (increase deactivation threshold and decrease evaluation timeframe), or to lessen the impact of the integration on the end-users when some connection fails (decrease deactivation threshold and increase reactivation wait time).
Activate or Deactivate Integration
Customize the ABAP agent and ensure that the HTTP SDK instances are running before activating AppDynamics integrations.
You need to be in edit mode to activate or deactivate the AppDynamics module. Click Activate integration or Deactivate integration button respectively from AppDynamics Settings.
When ABAP Agent integration is activated, ABAP Agent schedules background jobs under the SAP user that activates the integration. The following jobs are scheduled:
- APPD_STAD_COL - STAD collector job is scheduled when an active GUI Transaction match rule exists. This job reconstructs STAD data into GUI Transaction Business Transactions. See Monitor SAP Dialog Transactions.
- APPD_HOUSEKEEP_COL - Daily ABAP Agent housekeeping job.
- APPD_AGENT_REGENERATE - (as of version 22.11.0) job that executes when an event of SAP instance starts. It automatically starts HTTP SDK on the corresponding application server if it was shut down due to the restart of the host.
As of version 22.5.0, Expert Settings can be used to set a specific SAP user to execute these background jobs and to change the period of the housekeeping job.
Troubleshooting
Connection Problems
Connection Refused (NIECONN_REFUSED)
Often happens with remote HTTP SDK, but can also be applied to other agents (machine agent, analytics agent)
Make sure that communication between ABAP Agent on SAP system and remote HTTP SDK on another host is not blocked. Most common causes:
Outgoing HTTP request firewall policy on SAP system
Incoming HTTP request firewall policy on remote HTTP SDK host
Ports on remote HTTP SDK host are not open - this includes SDK Manager port (default 7999) and also ports for each application server of SAP system set up in transaction /DVD/APPD_CUST
Ports are being occupied on remote HTTP SDK host by another applications - Command to check if port is not already in use is:
Linux - "netstat -tulpn | grep <port_number>" - if there is record with action "LISTEN" port is already in use
Windows - "netstat -ano | Select-String <port_number>" - if there is record with action "LISTENING" port is already in use
Also, make sure you can actually telnet from the local host to the remote host you are trying to reach. On the OS level, try using the command “telnet <host> <port>” to see if the host can be reached
If you made changes to the setup in ABAP Agent (application name, changed port numbers) SDK Manager and all HTTP SDK instances need to be stopped on the remote HTTP SDK host and SDK Manager needs to be started again with "-c" parameter as per documentation.
SSL Error
Happens when SSL communication is used, but missing/incorrect certificate is in place.
Error may happen for respective APIs or agents:
SAAS Controller
Using a web browser, navigate to your SaaS controller URL (for example,
https://company.saas.appdynamics.com/
)Download the certificate using this guide
Add the downloaded certificate to STRUST identity you are using in transaction /DVD/APPD_CUST following this guide. If STRUST identity in transaction /DVD/APPD_CUST is not filled out, DFAULT STRUST identity is used.
Event Service
Using a web browser, navigate to your analytics API controller URL (for example,
https://analytics.api.appdynamics.com/)
Download the certificate using this guide
Add the downloaded certificate to STRUST identity you are using in transaction /DVD/APPD_CUST following this guide. If STRUST identity in transaction /DVD/APPD_CUST is not filled out, DFAULT STRUST identity is used.
On-Prem Controller
When SSL communication is used between HTTP SDK and on-premise controller
Follow this guide
Remote HTTP SDK
When SSL communication between ABAP Agent and Remote HTTP SDK is used
Follow step 5 of this guide
Event Service
Connection Failed - Access Forbidden
API key generated for event service does not have sufficient rights
Navigate to Controller > Analytics > Configuration > API keys
Locate the key you are using in transaction /DVD/APPD_CUST
Click Edit, expand all nodes, and tick all checkboxes
Machine Agent
Machine Agent is running but ABAP Agent can’t reach it
Make sure that the machine agent was started with enabled HTTP listener.
Make sure you are using the correct port in /DVD/APPD_CUST transaction (default 8293).
Machine Agent is not correlated on the controller with HTTP SDK
Unique Host ID value in machine agent configuration must be the same as one HTTP SDK uses. This is done automatically, but sometimes mismatch occurs and needs to be handled manually. You can change the unique host id following this guide. After changing the unique host ID, do not forget to restart the machine agent for the change to take effect.
Analytics Agent
Analytics Agent is running but ABAP Agent does not detect it
Make sure host and port and set correctly and Transaction analytics is enabled in transaction /DVD/APPD_CUST
Make sure the host where the analytics agent is running is reachable from HTTP SDK host
HTTP SDK needs to be restarted after setting up analytics agent / transaction analytics settings
Configuration Problems
General Problems
Background jobs running too long
Make sure you are not using too generic GUI match rules. If you have a large production system, and your match rules are set up to match any GUI transaction, or if you are using automatically generated match rules, background jobs may run too long until they time out. This is because it is processing a large amount of GUI transactions as business transactions which can cause large performance overhead for the ABAP Agent jobs. Use more specified match rules and only monitor relevant transactions.
STAD Collector is inactive despite integration being activated
STAD collector is inactive as long as there are no GUI Transaction or Background job match rules defined. As soon as you define any GUI Transaction or Background job match rule (transaction /DVD/APPD_INSTR or /DVD/APPD_STATUS → Settings) background job APPD_STAD_COL that collects transactions from STAD and translate them to business transactions will be started and STAD collector will be activated.
Business Transactions
Not all defined transactions can be seen on the controller
If some of your transactions can’t be seen on the controller, make sure you have not reached the BT limit. The default limit is 50 BTs per node and total of 200 BTs per application. More on limits can be read here. If you have a large system, it is not recommended to use generated match rules or transaction splitting, instead define more detailed criteria according to this guide.
Where do time details from GUI BT snapshot come from
All GUI transaction snapshots have time details that are extracted directly from STAD. There is SAP note that describes each time information that can be found in SAP Note 8963.