Apache Sirona is an open source monitoring solution for Java applications. It provides simple Gauge and Counter objects to collect metrics. Gauges measure values like memory usage and thread counts, while Counters aggregate metrics like response times and concurrency levels. Metrics can be stored in memory, Cassandra, or Graphite. A central Collector webapp is available to view aggregated reports from multiple instances. Sirona uses a plugin architecture and aims to integrate monitoring natively into applications without external dependencies.
2. History
Started around 2008 in Apache Commons
Sandbox
● Restarted around July 2013
● Moved to Incubator to become a TLP project
● Ohloh
●
3. Goal
Sirona aims to provide a simple but
extensible monitoring solution for Java
applications.
4. Basis
Apache Sirona is only two “simple” objects
Gauge: a way to get a measure. It is intended
to get a history of a metric.
Counter: statistic and concurrency holder. It
aggregates the information provided computing
the average, min, max, sum of logs, …
5. Gauge
public interface Gauge {
Role role();
double value();
}
Role is a name and a unit
Usage: number of http 200/500/etc,
CPU/Memory usage
6. Included Gauges
Memory: used heap, used non heap
Used CPU
Active Threads number
HTTP-(n) request number
Active http session
12. Data Storage
Per default: Memory in the same JVM (per
default limit to last 50 values)
Cassandra available too
Graphite (send data to Graphite instance)
Cube
RRD coming (soon)
13. Collectors
Central Collector webapp available.
To consult aggregated reports on n instances
Pull and Pool architectures available over http(s)
14. Extensible
Based on a Plugin mechanism architecture
●
Plugin for collecting Gauge/Counter
●
Plugin to store data
●
Plugin to display results in the UI
15. Extensible
No usage of external libraries to avoid
dependencies issues.
Goal: having this monitoring solution natively
integrated with Tomcat/TomEE
Based on 1.6 ServiceLoader
Rendering: internal small framework,
velocity/js rendering