Chapter 4. Management

Management of eXo Platform
JMX Interface
REST Interface
Management view
Kernel management view
Cache management view
Content management view
Portlet Container management view
Portal management view
Knowledge Management view

Management of the resources of a platform is critical for production usage. The eXo Platform product is exposed as a manageable set of resources that can be inspected at runtime to monitor and manage servers.

When it comes to Java, the Java Management Extension (also known as JMX) is the de-facto standard to expose managed resources externally.

This chapter explains the various resources provided by the eXo Platform server, the management actions that can be performed, and how to obtain relevant metrics.

Cache is essential for improving the performance of a server infrastructure.

Each cache is exposed and provides statistics and management operations. The JMX name of each cache MBean uses the template exo:service=cache,name=CacheName where CacheName is the name of the cache.

AttributeDescription
Capacity the maximum capacity of the cache
HitCount the number of times the cache was successfully queried
MissCount the number of times the cache was queried without success
Size gives the number of entries in the cache
TimeToLive attribute gives the maximum lifetime that an entry is considered valid. A value of 1 means that the entries will never become stale
OperationDescription
clearCache() evicts all the entries from the cache. It can be used to force a programmatic flush of the cache

The cache service manages the different caches. The JMX name is exo:service=cachemanager.

OperationDescription
clearCaches() force a programmatic flush of all the registered caches

Portlet containers do provide a management view that consists mainly of statistic exposure. The JMX name of a portlet container follows this template: exo:application="Application",portlet="Portlet" where Application is the name of web application and Portlet is the portlet name in the web application.

Each portlet container has a corresponding managed resource that exposes statistics as attributes. The Portlet lifecycle has several phases (named action, event, render and resource). These are particular operations that a portlet can execute, and each is monitored.

AttributeDescription
ActionCount, EventCount, RenderCount and ResourceCount the number of executions of a particular portlet phase
MeanActionTime, MeanEventTime, MeanRenderCount and MeanResourceCount the average time spent during the execution of a particular portlet phase
MaxActionTime, MaxventTime, MaxRenderCount and MaxResourceCount the maximum time spent during the execution of a particular portlet phase
MinActionTime, MinEventTime, MinRenderCount and MinResourceCount the minimum time spent during the execution of a particular portlet phase

The portal management exposes the portal resources either for management or for obtaining statistics.

The template management exposes the various templates used by the portal and its components to render markup. Various statistics are available for individual templates, as well as aggregated statistics, such as the list of the slowest templates. Most of the management operations are performed on a single template; those operations take the template identifier as an argument. The JMX name of the template statistics MBean follows the template: exo:view=portal,service=statistic,type=template.

AttributeDescription
TemplateList the list of the templates loaded
SlowestTemplates the list of the 10 slowest templates
MostExecutedTemplates list of the 10 most used templates
FastestTemplates list of the 10 fastest templates
OperationDescription
getAverageTime(templateId) returns the average time spent in the specified template
getExecutionCount(templateId) returns the number of times the specified template has been executed
getMinTime(templateId) returns the minimum time spent in the specified template
getMaxTime(templateId) returns the maximum time spent in the specified template
AttributeDescription
SkinList the list of the loaded skins by the skin service
OperationDescription
reloadAll(skinId) forces a reload of the specified skin and the operation reloadSkins() forces a reload of the loaded skins

The JMX name of the portal statistics MBean follows the template exo:view=portal,service=statistic,type=portal.

AttributeDescription
PortalList returns the list of the loaded portals
OperationDescription
getThroughput(portalId) returns the number of request per second for the specified portal
getAverageTime(portalId) returns the average time spent in a specified portal
getExecutionCount(portalId) returns the number of times a specified portal has been executed
getMinTime(portalId) returns the minimum time spent in the specified portal
getMaxTime(portalId) returns the maximum time spent in the specified portal

Various applications are exposed to provide relevant statistics. The JMX name of the application statistics MBean follows the template: exo:view=portal,service=statistics,type=application.

AttributeDescription
ApplicationList returns the list of the loaded applications
SlowestApplications returns the list of the 10 slowest applications
MostExecutedApplications returns the list of the 10 most executed applications
FastestApplications returns the list of the 10 fastest applications
OperationDescription
getAverageTime(applicationId) returns the average time spent in the specified application
getExecutionCount(applicationId) returns the number of times the specified application has been executed
getMinTime(applicationId) returns the minimum time spent in the specified application
getMaxTime(applicationId) returns the maximum time spent in the specified application