MAPI

Monitoring Application Programming Interface



The MAPI Profiler Agent is able to gather application-level information about the Java environment of the monitored target. It not only collects JVMPI events but also filters and processes them on-line, to offer concise monitoring indicators during service execution. These JVMPI-based monitoring functions are immediately portable on any host that runs the JVM version 2.

According to the SNMP terminology, the MAPI SNMP Agent acts as an SNMP manager that interrogates the standard SNMP agent available on its local target to obtain kernel-level monitoring data. The MAPI SNMP Agent not only provides a uniform Java interface by wrapping possibly non-Java SNMP agents. It also implements several local optimizations of the SNMP protocol. In addition, it simplifies the configuration of the security parameters needed in SNMPv3, by integrating with the SOMA distributed security infrastructure.

To be portable even in case the monitored targets do not host the execution of suitable SNMP agents, ResourceManager exploits the MAPI*ResManager classes to integrate with platform-dependent monitoring functions via JNI. These functions are implemented as native libraries with uniform interfaces for different platforms (MAPI WindowsRM DLL on Microsoft Windows NT 4.0, MAPI SolarisRM SO on SUN Solaris 7, and MAPI LinuxRM SO on SuSE Linux 6.2). ResourceManager achieves portability by sensing dynamically the implementation platform of the current monitored target and by consequently loading at runtime the specific native library.

The figure shows the MAPI set of methods that provide concise monitoring parameters to summarize the current state of the monitored target. MAPI has been designed and implemented to enable service administrators (or autonomous software-based service managers) to obtain kernel/application resource state for on-line service management and adaptation. In this scenario, the overhead is critical, and monitoring results should be prompt and immediately available to managers. For this reason, MAPI can tune its intrusion to service-specific time constraints: all MAPI methods have a msec invocation parameter that indicates the time interval to update the statistics of collected JVMPI events, to interrogate SNMP agents, and to invoke native monitoring libraries.

(click here for a larger view of the picture)

MAPI methods return either an object or an array of objects of the three classes ProcessInfo, NetworkInfo, and FileSystemInfo.

The ProcessInfo object maintains all the data related to the current pid process. Monitored data include the CPU usage (percentage and total time) for any specified process, its allocated memory (physical and virtual), and miscellaneous information on its composing threads. In addition, in the case of JVM threads, MAPI maintains the reference to the Java thread object, its lifetime, and the number of loaded classes, used monitors, allocated objects, invoked methods, network and file system operations. For non-Java threads, MAPI provides the thread identifier and the percentage/effective time of CPU usage.

The NetworkInfo class reports aggregated monitoring data about the usage of the communication infrastructure on the target host. Monitored data include the total number of sent/received UDP/IP packets, of TCP connections and sent/received segments, the percentage of UDP/IP packets received with errors, and the percentage of discarded UDP/IP output packets. These parameters are sufficient to give an overall evaluation of the host traffic conditions and to identify congestion situations.

The FileSystemInfo class maintains general information about the file system of the target (disk free space and its percentage on total size) and detailed data about currently opened files. In particular, for any active process and for any file opened in the current session, the class returns the opening time and its opening mode (read/write/both/locked).

The UML class diagrams and package diagrams of the MAPI implementation are available for download.


 
Page updated on April, 10, 2001
In case of problems, or if you find any bug, please contact us.