Helios Open Source Application Performance Management




Helios Open Source Application Performance Management



Helios is an open source performance and availability monitoring, visualization and reporting system. The diagram below outlines the component structure of the core product. A more in depth architecture summary is also available.


Helios Component Summary


Helios OpenTrace (HOT): A sophisticated tracing library that provides a consistent mechanism to submit collected data back to the Helios Core Server. The API provides a number of raw data types support as well as logical data typing to handle delta, interval and sustained value representation. Helios Open Trace Adaptors: A feature of HOT that supports the multiplexing of collected measurements out to several data consumers in addition to the Helios Core Server such as logging frameworks, third party APMs like CA/Wily Introscope, JMX and Nagios. The multiplexing is completely handled in the configuration of the HOT factories so adding or modifying target adaptors is invisible to the constructs using the HOT API.
Helios Embedded API: The HOT API can be embedded into applications at the source level. This investment is secured by virtue of the externalized configuration for the HOT tracer classes which allows configuration time and run time modification of several aspects of the tracing operations. Configuration is initially defined through XML and at runtime, the tracers can be configured through the HOT JMX management interface. Configurable attributes include enabling/disabling trace operations according to class name and metric name patterns, adding or removing configured multiplexed OpenTrace adaptors and the ability to define the generation of synthetic or aggregate measurements through value thresholds, range definitions and hierarchical metric rollups. Helios Collectors: A library of monitors that collect performance and availability statistics from a variety of sources including local and remote JMX, Unix, Linux and Windows hosts, SNMP agents, Web Servers and network monitors. The collectors can be deployed in the Helios Core Server or in any Spring container. Collected data is managed by Helios Open Trace making Helios Collectors a useful standalone service or as a component of another monitoring system through the Open Trace Adaptors.
Helios Ajax Agent: A combination of a JavaScript library and backend Helios Open Trace enabled HTTP filters, this component provides a low overhead and detailed view of the performance of Ajax calls from browser based applications through the XMLHttp adaptors. Helios AOP: A library of interceptors for JEE and Spring that supports the injection of OpenTrace data collection into application stacks.
Helios Core: The core engine that processes and aggregates submitted tracing data from remote or in-VM OpenTrace clients. Trace data is aggregated and conflated in accordance with a interval based demarcation. The resulting data points are then distributed to interested listeners such as the Helios Persistence service which stores collected data to a database. Helios Persistence: A high performance and flexibly configurable trace data persistence service that both stores aggregated and conflated trace data to a database and provides a simple, streamlined and fast API to retrieve the data back.
Helios Rendering: A Helios Core listener that caches a number of the most recent measurements of defined groups of metrics and renders them into rich content such as graphics of real time charts (PNG, JPG etc.) or fragments of text based markup like HTML or XML. This content is then provided to requesters through the Helios Media Server. Helios Media Server: A server process embedded into Helios Core that serves rich content generated by the Helios Rendering service through a parameterized REST interface. The Media Server is implemented to support Helios Dashboards but can also be used to embed real time content into third party applications using the standardized and simple REST/HTTP interface.
Helios Dashboards: The Helios Core central administration console and data visualization application. Dashboards can be created, modified  and saved and can display custom client side rendered graphics or content served from the Helios Media Server. Helios Data Distribution: A subscription service where clients can register an interest in specific sets of metrics at a real time or defined interval rollup. As new data becomes available, or subscribed intervals enter into scope, the most current applicable subscribed metric data will be published to the subscribed clients. This service provides data to clients that can render their own graphics and to clients that are interested in some other form of processing on the target data stream. The interface for subscribing to these data streams is implemented in the Helios Client Data API.
Helios Formulations: A Helios Data Distribution subscriber that receives the latest measurements for defined metrics and then executes formulas across one or more sets of metric data using either a spreadsheet like formula expression language or Groovy scripts. The results of the formulas are republished to Helios Core through HOT as derived synthetic metrics. Helios Event Processing: A complex event processor that ingests raw or aggregated/conflated traces and issues callbacks in accordance with registered event conditions in Helios Event Processing subscribers.
Helios Heuristics: An experimental extension of Helios Event Processing that provides a stream of relevant data and events back to applications so they can react and adjust in accordance with the state of the general application environment which is being monitored by Helios. For example, the Helios Heuristics API might be implemented to start up or shutdown nodes in a computing cloud based on the current load across the whole environment. The API could also be used to implement a server load sensitive load balancing algorithm for the JBoss Clustering HA RMI stubs. Embedded Helios: A compressed and feature stripped version of Helios suitable for embedding into other applications  to provide bundled performance monitoring, visualization  and reporting.

Comments