User Plugins allow you to extend the product's functionality for automation and monitoring. You can generate basic Plugin skeletons through the AppMon Client, which you also use to compile, test, and deploy the Plugins.
A User Plugin can be any of four types: Action, Task, Monitor, or Agent Metric Group. The Action, Task, and Monitor User Plugins contain code that is executed by the AppMon Server or Collector. An Agent Metric Group User Plugin only contains configuration data that defines Metric Groups, metrics, and their default configurations.
The following table summarizes how the User Plugin types are executed.
|Plugin Type||Execution on Server||Execution on Collector||Execution on Agent|
For emb edded Collector
|Agent Metric Group|
Actions are not scheduled for repetitive execution. An Action can be added to an Incident Rule so it is executed whenever the conditions defined by the Incident Rule are met. Like Tasks, Actions get configuration parameter values for execution and provide an execution status after execution. Actions also get information about the condition that caused the incident, for example a measurement that violated a threshold.
A Task can be scheduled for repetitive execution on the Server or on a connected Collector. You can define execution schedules and share them among different Tasks and Monitors. On execution, a Task gets a set of configuration parameter values from the AppMon Plugin architecture. When execution is completed, the Task provides an execution status containing data about the execution.
Monitors are scheduled for repetitive execution on a Collector. Like Tasks and Actions, Monitors get configuration parameters and provide an execution status. A Monitor also gets a set of measure subscriptions that describe the measurements the Monitor has to perform, and it provides measurement data after execution.
The figure illustrations how a Monitor interacts with an AppMon Server or Collector.
Dynamic monitor measures
Monitor Plugins can generate dynamic measures on their own. While it is still necessary to define and subscribe a base measure for the Monitor, you can create additional submeasures that are analyzed independently. See Plugin Best Practices and Examples for a code sample.
You can configure a set of hosts for each Monitor configuration, so that the Monitor is run once per scheduled execution for each of the configured hosts. See Plugin Best Practices and Examples for an example how to use the configured host in the Monitor code, and URL Monitor for an example how to configure a host set.
A Metric Group can be either an Agent Metric Group or a Monitor Metric Group.
An Agent Metric Group is used to specify metrics based on Java JMX MBeans, IBM WebSphere PMI counters, and Microsoft Windows performance counters. Measures based on metrics from Agent Metric Groups provide measurements from one or multiple Agents. These measures do not require a Monitor.
A Monitor Metric Group defines metrics for a specific Monitor. Measures based on metrics from Monitor Metric Groups provide measurements from one specific instance of a Monitor.
Any valid OSGi bundle can be added as library. The only exception are bundles that are used internally by the AppMon installation. You cannot alter those bundles because the alteration could harm the integrity of the AppMon installation. However, internally used bundles can be used to fulfill bundle requirements of User Plugins, just like Tasks, Actions, or Monitors.