The Caplin Platform contains full enterprise-wide monitoring and management capability. This feature allows a system administrator to monitor the activity and behaviour of Caplin Platform components, ranging from a high-level view of the enterprise down to granular detail of every data item in the system. Every application built with the Caplin Integration Suite for Java, the DataSource for C API, or the DataSource.NET API can be enabled for monitoring and management. This includes Caplin Liberator, Caplin Transformer, and all standard Integration Adapters such as the TREP Adapter.
Each Platform component and Integration Adapter exposes its internal state using a JMX interface. You can view this information with the Caplin Management Console, or you can use the JMX API to implement your own monitoring tools. The monitoring interface can also be used to perform certain actions, for example ejecting a user.
Monitoring -v- Management
Caplin Platform components provide both monitoring and management functionality through the same interface, so where we say monitoring, management is also implied. It’s worth spending some time understanding what we mean by both terms, however:
Monitoring: Means viewing attributes of the currently running system. The majority of the items that are exposed by the Caplin Platform fall into this category. They may be items that never change or items that change regularly. These attributes can usually have listeners registered that are notified of changes when they occur. Examples of monitoring attributes are: The current and peak counts of sessions logged-in to the Liberator. A list of objects that a particular session was viewing. The message count and rate of updates received by a DataSource application. The license details for the system.
Management: Means performing an operation to modify part of the currently running system. Management items are exposed as operations that take zero or more parameters and return a value, much like a function in a programming language. Examples of management operations are: Reconnecting peers. Re-validating user’s permissions. Ejecting session(s) that are currently logged-in to the Liberator.
How it works
The Caplin Platform monitoring and management solution exposes information about the state of a DataSource application through standard attributes, allowing the application to be monitored and managed. Custom-built Integration Adapters can easily add new items for monitoring and management by using standard methods available in the Caplin Integration Suite for Java or DataSource.NET API, or standard functions from the DataSource for C API.
Monitoring and management of Java-based DataSource applications, such as Integration Adapters, is enabled by a plug-in Java Management Extension (JMXTM) module that is loaded at runtime by the DataSource application. This module provides a standard framework that exposes objects for monitoring and management by JMX-enabled clients.
Monitoring and management of the Platform’s Caplin Liberator and Transformer servers is enabled by deploying the Liberator JMX Config blade and Transformer JMX Config blade. The Caplin Management Console (CMC) is a graphical instance of a JMX-enabled client. Using standard JMX protocols, the CMC provides custom, domain-centric displays that enable the user to clearly visualise and control Caplin Platform components.
The JMX module provides a standard JSR 160 JMX Remote API that can be accessed by existing JMX-aware applications, such as alerting tools and graphical consoles.
DataSource applications: Every DataSource application exposes detailed information to the monitoring system as standard:
System: Information related to the running process, such as CPU and memory usage, process id, and uptime.
License: Details of the current license
Logging: Access to log messages written to various log files; and control of logging levels and log file cycling.
Peers: Information about configured and connected DataSource peers; statistics for all messages sent and received; the ability to connect to peers and disconnect from them, and the ability to fail-over to alternative peers.
Liberator: Caplin Liberator exposes the following additional features to the monitoring system:
System: Aggregated information about total number of sessions, objects, data throughput, and so on; and information about any configured clusters.
Users: Information about all connected users and their sessions, including latency and object subscription details; and ability to eject and revalidate users and cancel subscriptions.
Objects: Details about all objects in the system: their type, stale status, update times, subscription counts, and so on; and details of which sessions are viewing each object.
Transformer and Integration Adapters: Monitoring features are also available in other Caplin Platform products, including Caplin Transformer, and off-the-shelf Integration Adapters such as the TREP Adapter.
Monitoring Object Naming
Each monitorable and/or manageable item is defined by a template that gives it a type name in a hierarchical namespace. This is prefixed by a server identifier for that process. For example, the logging template in the system rttpd would result in a template name of
Individual items are then identified by a primary key that uniquely identifies that item. For example, with the above template, these keys could be event_log and http_access_log. The keys are used by the specific monitoring plug-in to create suitable instance identifiers. For example, in the JMX plugin, these two examples would create MBeans with the following ObjectNames:
This provides a consistent, navigable tree-like structure for the items. For example in the JMX console explorer view of the items, they are arranged using a collapsible tree.