![]() |
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.
|