A particular service in a monitored environment may be used by multiple business transactions in a business application.
Service endpoints in the AppDynamics application model are like business transactions. However, while business transactions give you the view of a transaction as processed by possibly many distributed services, service endpoints provide a view of performance that is focused on the service.
Service endpoints give you key performance indicators, metrics, and snapshots for the service independent of business transactions, without the downstream performance indicators available in business transactions. Service endpoints are useful for users who want to monitor a given service or set of services regardless of the end-to-end business transactions that use them.
Using Service Endpoint
AppDynamics discovers and generates service endpoints automatically. You can view, configure, and remove existing service endpoints by clicking the Service Endpoints link in the application navigation menu.
To configure how service endpoints are created, use the Configuration > Instrumentation page. You configure Service Endpoints in a similar way as business transactions. In either case, you can can modify the automatic detection rules or add custom ones. Any service that is detectable as business transaction entry points can be automatically detected as service endpoints.
A service endpoint adds a small amount of overhead to the system. Agents capture approximately three metrics per service endpoint, so each service endpoint results in the additional metric traffic resulting from three metrics.
Diagnostic sessions are not intended to run in the context of a service endpoint alone, so while you can't directly invoke a diagnostic session by service endpoint, you can achieve the same effect by running them on the business transactions that include calls to the service endpoint. These appear in the dashboard for the service endpoint. Note that custom metrics are not available for service endpoints.
Service Endpoint Limits
The Controller and agent configurations apply limits on the number of service endpoints that can be registered. This prevents the possibility of a boundless expansion of the number of service endpoints.
The limits are as follows:
For each App Agent, the limit is 25 service endpoints per entry point type and total of 50 per agent. These limits are controlled by the max-service-end-points-per-entry-point-type and max-service-end-points-per-agent node properties respectively. See their descriptions in the App Agent Node Properties Reference page for details.
- Nodes are limited to 100 service endpoints. See the description of max-service-end-points-per-node in the node properties reference for details.
- For a Controller account, the limit is 4000. For an on-premise Controller, the limit is configurable using the
sep.ADD.registration.limitconfiguration property accessible in the Administration Console.
- Each thread of execution can only have one service endpoint. See the description of max-service-end-points-per-thread in the node properties reference.
Monitor Service Endpoint Performance
Service endpoint metrics appear under the Service End Points node 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.
The Metric Browser tree includes a branch for service endpoints. Service endpoint metrics follow all the rules for normal metric operations including metric registration and rollup for tiers, limits on number of metrics, and other standard operations. Service endpoints only include entry point metrics. Custom metrics are not supported.
You can view performance by service endpoint by clicking the Service Endpoints link from the applications tree. The page lists the service endpoints for the application and performance metrics for the selected time range, including number of calls and errors.
Configure Service Endpoints
Configure existing service endpoint detection settings or add new ones in the Service Endpoints page, which you can access by clicking Configuration > Instrumentation > Service Endpoints in the application menu.
For existing service endpoint detection rules, you can enable or disable the detection rule or modify the naming rule (for Servlet-based service endpoints).
To add a new service endpoint detection rule
- Click the Custom Service Endpoint subtab.
- 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, as described in Configure Custom Match Rules.
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.