EP Agent
The EPAgent is a standalone Java application with a wide range of features for collecting data to send to the Enterprise Manager. You can easily integrate any data into Enterprise Manager by registering script plugins, either in stateful, such as log reading, or stateless, such as CPU or OS statistics.
apmdevops97
The EPAgent is a standalone Java application with a wide range of features for collecting data to send to the Enterprise Manager. You can easily integrate any data into Enterprise Manager by registering script plugins, either in stateful, such as log reading, or stateless, such as CPU or OS statistics.
For environments where the footprint of the agent and scripts are too expensive or the process of installing an entire EPA to collect the data is inconvenient, you can configure a single EPAgent to listen to a network port for metric data from arbitrary remote systems. Specifically, one port can be set to listen for XML-formatted metric data, and a second can listen for data sent using HTTP requests. such as HTTP GET or RESTful.
CA APM Service Pack 9.7.1 provides a REST-compliant interface that allows metrics to be submitted in batches over a more efficient RESTful PUT operation.
- HTTP GET Requests – often sent from common programs, such as wget or curl, at the command prompt. This is used for single-metric submission and is less efficient than the newer RESTful interface. This interface can be quickly used via a browser to illustrate sending metrics.
- XML format provides maximum flexibility, but is slightly more complex and requires manual management of the socket
The EPAgent overview contains the following:
EPAgent Implementation
The EPAgent is implemented in Java and runs in a Java Virtual Machine (JVM). It uses the JVM facility to invoke a subprocess and receive STDOUT and STDERR. The subprocess is any type of script or executable can be invoked on a command line, such as a compiled program written in C or Perl script.
By executing a simple PRINT function, the application or script in the subprocess communicates with the EPAgent. Applications or scripts communicate metric data to the EPAgent by printing to STDOUT as follows:
.png)
The EPAgent expects the text it receives using STDOUT to conform to the specific format of either a simple name/value pair or XML. The application or script sending data to EPAgent is referred to as an EPAgent plug-in. The EPAgent includes several default plug-ins that provide detailed metric data. You can also create custom plug-ins.
Scripting Environments
Although the EPAgent can receive text from any executable entity, including compiled applications, in a subprocess, the most flexible approach is to use a scripting environment, such as Perl, KornShell, or rexx. Interpretative scripting environments have the advantage of ease of implementation and often supply libraries or interfaces to real-world data sources, such as relational databases, OS subsystems consisting of process table and file system, and third party products.
Scripts gather information from a wide variety of sources, such as:
- calling a library function or system utility to check the existence of a critical application, such as a database.
- scanning and parsing application logfiles to detect application errors.
The flexibility of a scripting environment allows the EPAgent to gather performance and management information from virtually any source, as illustrated below.

CA Technologies emphasizes the use of Perl with the EPAgent because Perl interpreters are available on a wide variety of platforms and have wide support for data APIs to operating systems, middleware, and third party products. EPAgent includes a set of sample Perl scripts to perform a variety of functions such as checking for process availability, obtaining disk performance statistics and reading HTTP logs. You can extend these scripts to perform other functions. For support with customizations to PBDs, EPAgent scripts, or JavaScript calculators, contact CA Technologies Professional Services.
Input From Network Sources
In addition to accepting input from local processes, EPAgent can accept input from network sources. For instance, collecting information from networked processes where EPAgent cannot run, such as a C++ backend system providing monitoring information using a network port, or posting data periodically to a web URL.
EPAgent and CA Introscope
EPAgent runs as a standalone process and, similar, to the PHP Agent, Java Agent or .NET Agent, connects to the Enterprise Manager to deliver management and performance information. The EPAgent forwards data to the Enterprise Manager as illustrated below.

The EPAgent helps obtain a detailed overall view of your application environment. The EPAgent permits the easy collection of information from the non-Java and non-.NET portion of the application environment for display alongside the Java and .NET metrics in the CA Introscope Workstation.
Supported Plug-ins
The EPAgent supports both stateful and stateless plug-ins. Errors are logged through the standard error channel of the plug-in, enabling the EPAgent to log this error output as it would any other errors. Perl version 5.00503 or later is required by all default plug-ins.
The available plug-in types are:
- Stateful-- expected to be long running scripts (daemons) to be started when the EPAgent starts and run indefinitely. These stateful plug-ins can feed data back into Introscope at any time through the standard output channel of the plug-in. Should a stateful plug-in terminate, it is restarted by the EPAgent.
- Stateless-- designed to run on a recurring schedule and configured with the frequency at which they should be run. This is specified as delay between runs. Stateless plugins are expected to be short-running scripts intended to collect data, send it to the EPAgent through the standard output channel, and terminate. No special error-checking is done by the EPAgent to ensure only one instance of a stateless plug-in is running at one time. You are required to design your stateless plug-ins to run and complete in a reasonably short period of time.
The EPAgent includes a library of default plug-ins for use with minimal configuration. The function of each plug-in and the supported operating systems are as follows:
Plug-in | Function | Supported |
process availability check | searches for a running process with a given name | Solaris |
OS-level disk statistics | reports reads/writes, transaction times, % time waiting, disk capacity, and so on | Solaris |
Apache log reader | reports number of HTTP errors, number of transactions, average transaction size | Solaris |
WebLogic log reader | reports error count, warning count | Solaris |
WebSphere log reader | reports error count, warning count | Solaris |
IIS log reader | reports number of errors by type, number of pages served, number of users by IP address | Windows |
HTTP Service Availability HTTPS Service Availability | reports connection success/failure, connection round-trip time, average throughput/bandwidth | Solaris |
Solaris Kstat statistics | reports any statistics available through Kstat utility, such as I/O statistics, network statistics for all devices, virtual memory statistics | Solaris |
In addition, the EPAgent supports gathering data from arbitrary programs and plug-ins. The only requirement for custom plug-ins is that they produce output in one of two supported formats.