AppDynamics automatically detects service endpoints for Java applications. You can configure custom service endpoints for Java or .NET to monitor the performance of services.
You can also configure exclude rules for service endpoints, which prevent agents from registering service endpoints for methods that match the exclude rules. The order of precedence for match, exclude and automatic rules are:
- Exclude rules
- Custom service endpoint rules
- Automatic discovery
To configure service endpoints your user account must have the Configure Service Endpoints permission for the business application. For information on AppDynamics Role Based Access Control, see Application Permissions.
Configure Custom Service Endpoints
You configure custom service endpoints like you configure custom match rules for business transactions:
- From the Service Endpoints pane, click Configure.
- Click the Custom Service Endpoint tab.
Choose the tier on which the service runs and click the plus icon to add a service endpoint configuration. The configuration settings are similar to business transaction entry point configuration settings. See Custom Match Rules.
As you choose a method for a service endpoint, avoid methods that occur within the following programming patterns:
- High-frequency loops, such as a for or while loop.
- Recursive functions.
Service endpoints inside such structures may cause performance overhead. Instead, consider adding a service endpoint at a point in the code upstream from a high-frequency loop or recursive function.
Configure service endpoint exclude rules in the same pane as the custom service endpoints. Click Is Exclude Rule on the New Service Endpoint Definition pane.
Automatic Discovery for Java
The Java Agent automatically discovers service endpoints. To configure service endpoint automatic detection settings, click to Configure on the Service Endpoints pane. You can configure the following settings:
- For existing service endpoint detection rules, you can enable or disable the detection rule.
- For servlet service endpoints, you can modify automatic naming as you would with servlet business transactions.
POJO Service Endpoints
For the Java Agent to detect Plain Old Java Objects (POJO) service endpoints, you must do the following:
Create at least one POJO custom service endpoint definition and enable it. The agent only detects POJO service endpoints for enabled custom service endpoint definitions.
Verify automatic discovery for POJO service endpoints is enabled. It is enabled by default.
When you disable automatic discovery for POJO service endpoints, the agent doesn't detect custom service endpoints.
Asynchronous Worker Thread Service Endpoints
The Java Agent automatically detects asynchronous worker threads spawned within a transaction as service endpoints. The agent names worker thread service endpoints for the class name, for example, "worker1". There is no end-to-end latency metric for worker thread service endpoints.
To disable worker thread service endpoints, register the enable-async-service-endpoints app agent node property with a value of "false". See App Agent Node Properties.
Configure Service Endpoints for .NET
The .NET Agent doesn't automatically discover service endpoints. To define a custom service endpoint for .NET, navigate to Configuration > Instrumentation > Service Endpoints > Custom Service Endpoints. Define the service endpoint as you would a custom match rule for a business transaction. See Service Endpoints and Transaction Detection Rules.
You can create service endpoints for the following entry point types:
- Message Queues
- Web Service
The .NET Agent doesn't support service endpoints for MSMQ.
By default, you need to restart the instrumented application for instrumentation changes such as adding a POCO service endpoint to take effect. You can enable Runtime Reinstrumentation for the .NET Agent so that you don't need to restart your application and the AppDynamics.Agent.Coordinator after instrumentation changes.
After you configure a custom service endpoint, you can monitor it on the service endpoint dashboard that shows KPIs and transaction snapshots where the service endpoint executed. You can also use the metric browser to analyze service endpoint performance. See Service Endpoints.
Tips for Defining .NET Service Endpoints
The methods that serve as the entry points for business transactions are often the same methods that you want to monitor as service endpoints as well. You can create service endpoints on the originating entry point for a business transaction.
- For ASP.NET service endpoints, you can use the URL to define the service endpoint. For example, in the Travel Site tier above, set a URL match to "
- For WCF and ASP.NET web service entry points, you can use an existing transaction snapshot to find the URL for the service.
- Open a full transaction snapshot for the business transaction.
- From the upstream tier, click the exit call link, either WCF or Web Service.
The exit call window shows the URL for the web service.
- Open the service URL in a browser.
- On the service page, use the URL to access the WSDL file.
service name element shows the service name.
- Define POCO service endpoints exactly as you would a POCO custom match rule for a business transaction.