Sometimes as an owner of a specific component or service within a service oriented application, you need to monitor the component's performance outside the context of business transactions. Service endpoints in the AppDynamics application model enable you to focus on the metrics for a single component without upstream or downstream data.
Like business transactions, service endpoints give you key performance indicators, metrics, and snapshots. However, service endpoints omit the downstream performance indicators available for business transactions.
Service endpoints are also useful when multiple business transactions make use of a single service and you want to analyze the service's performance regardless of the business transaction.
Monitor Service Endpoints
From the Applications tab in the Controller, click Service Endpoints from the left navigation pane to view a list of service endpoints with key performance metrics. Service endpoints that have performance data during the selected time range appear in the list. Use the filter view options to show inactive service endpoints for the time range. Other view options include showing transactions of a certain types or ones that exceed a configurable average response time, among others.
The Actions menu lets you view, delete, and exclude selected service endpoints. Excluding service endpoints from this menu hides the service endpoint from the list. To completely disable metric collection for the service endpoint, create an exclude rule. See Configure Custom Service Endpoints and Exclude Rules.
Diagnostic sessions are not intended to run in the context of a service endpoint alone so you can't directly start a diagnostic session from a service endpoint. If you run a diagnostic session on the business transactions that include calls to the service endpoint, the transaction snapshots from these diagnostic sessions appear in the service endpoint dashboard.
Service Endpoint Limits
A service endpoint adds a small amount of system overhead. Agents capture approximately three metrics per service endpoint, so monitoring each service endpoint results in additional metric traffic.
To prevent the possibility of a boundless expansion of service endpoints, the Controller and agent configurations apply the following limits:
|Element||Limit||For more information|
|Application Agent||25 service endpoints per entry point type||See max-service-end-points-per-entry-point-type on App Agent Node Properties Reference.|
|Java Agent||40 asynchronous worker thread service endpoints|
See max-service-end-points-per-async-type on App Agent Node Properties Reference.
|Node||100 service endpoints||See max-service-end-points-per-node on App Agent Node Properties Reference.|
|Controller account||4000 service endpoints||For an on-prem Controller, the limit is configurable using the |
|Execution thread||1 endpoint||See max-service-end-points-per-thread on App Agent Node Properties Reference.|
Service Endpoint Metrics
Service endpoint metrics appear under Service Endpoints in the metric browser. Service endpoint metrics are subject to the same operations as other metrics, including those around metric registration, metric rollups for tiers, and limits on number of metrics.
Custom metrics are not supported.
Configure Custom Service Endpoints and Exclude Rules
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 Configure 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.
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 window as the custom service endpoints. Click Is Exclude Rule on the New Service Endpoint Definition window.
The agent applies service endpoint configurations in the following order:
- exclude rules
- custom service endpoint rules
- automatic discovery
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 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 Reference.