Previous Topic: Agent General APIsNext Topic: Agent Transaction APIs


Agent Discovery APIs

The com.itko.lisa.remote.client.DiscoveryClient class provides methods pertaining to discovering data on an agent. You can get the DiscoveryClient class with the following call: AgentClient.getInstance().getDiscoveryClient().

Note: You can view detailed information about this class in the JavaDocs for the agent. The JavaDocs are located in the LISA_HOME\doc directory.

/**
  * The system properties of the specified agent
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public Map getVMProperties(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * Returns a list of StatsFrames recorded for the specified agent between the from and the to dates.
  * @param agentInfo the agent for which to retrieve statistics
  * @param from      how far back to filter
  * @param to        how recently to filter
  * @return          the desired StatsFrames list ordered by decreasing time (starting at the to date)
  */
 public List getStatistics(IAgentInfo agentInfo, Date from, Date to);
 
 /**
  * Returns a list of StatsFrames recorded for the specified agent between the from and the to dates.
  * @param agentInfo the agent for which to retrieve statistics
  * @param from      how far back to filter
  * @param to        how recently to filter
  * @param interval  how to aggregate the results in seconds. 10 means average the results of every 10 secs, etc...
  * @param limit     the maximum number of results
  * @return          the desired StatsFrames list ordered by decreasing time (starting at the to date)
  */
 public List getStatistics(IAgentInfo agentInfo, Date from, Date to, int interval, int limit);
 
 /**
  * TODO: (re)implement - currently will throw
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public Topology getTopology(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * Exit points are MethodInfo that capture classes/methods that make network calls down the stack
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public Set getExitPoints(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * Returns the name of the J2EE container (or java if it's not a J2EE container)
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public String getServerInfo(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * Returns the web applications deployed in the specified J2EE container
  * @param info
  * @return
  */
 public WebApplication[] getWebApps(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * Returns the JNDI hierarchy on the specified agent represented by a ClassNode tree
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode getJNDIRoot(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * The current threads on the agent VM
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public ThreadInfo[] getThreadInfos(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * The current threads stacks on the agent VM
  * @param info
  * @return
  */
 public String[] dumpThreads(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * The set of all files in the classpath of the specified agent
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public Set getClasspath(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * Returns the class hierarchy under the specified path
  * @param info
  * @param fromPath
  * @return
  */
 public ClassNode getClassNodes(IAgentInfo info, String fromPath) throws JMSInvocationException;
 
 /**
  * The class hierarchy found in the archive at the given url
  * @param info
  * @param url
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode getArchiveNodes(IAgentInfo info, URL url) throws JMSInvocationException;
 
 /**
  * A set containing data about the class (fields/methods/src)
  * @param info
  * @param className
  * @return
  * @throws JMSInvocationException
  */
 public Set getClassInfo(IAgentInfo info, String className) throws JMSInvocationException;
 
 /**
  * Decompile and return the source to a class
  * @param info
  * @param clazz
  * @param loc decompile on the client or in the agent
  * @return
  * @throws JMSInvocationException
  */
 public String getClassSrc(IAgentInfo info, String clazz, boolean loc) throws JMSInvocationException, IOException;
 
 /**
  * Returns the hierarchy this class belong to, i.e., all ancestors but also all extenders/implementers
  * @param info
  * @param className
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode[] getClassHierarchy(IAgentInfo info, String className) throws JMSInvocationException;
 
/**
  * Returns (references to) all objects in the heap of the specified class - use with caution
  * @param info
  * @param className
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode getInstancesView(IAgentInfo info, String className) throws JMSInvocationException;
 
 /**
  * Returns (references to) all objects on the heap tracked by the agent
  * @param info
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode getTrackedObjects(IAgentInfo info) throws JMSInvocationException;
 
 /**
  * A crude graph representation of an object (recursively computed fields)
  * @param info
  * @param clazz
  * @param hashCode
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode getObjectGraph(IAgentInfo info, String clazz, int hashCode) throws JMSInvocationException;
 
 /**
  * Gets the path from an object to a GC root
  * @param info
  * @param clazz
  * @param hashCode
  * @return
  * @throws JMSInvocationException
  */
 public ClassNode getRootPath(IAgentInfo info, String clazz, int hashCode) throws JMSInvocationException;
 
 /**
  * Gets a file on the agent filesystem, downloads it to the client in a temp location and return a handle to it
  * @param info
  * @param file
  * @return
  * @throws JMSInvocationException
  */
 public File getFile(IAgentInfo info, String file) throws JMSInvocationException, IOException;