make your application perform like a star

an open source solution to application performance monitoring for java server applications

Turn on private mode for your data

You can deploy stagemonitor on your own datacenter. Nothing will ever be sent to the outside world.

Production ready

Stagemonitor is successfully used in production and imposes a very low overhead.


Write your own plugins, use 3rd party plugins, track your own metrics and create or customize dashboards.


Define thresholds for your metrics. Manage subscriptions and alerting channels.

Distributed Tracing

Stagemonitor uses the Open Tracing API in order to correlate requests in a distributed system.

Brings Devs and Ops together

Stagemonitor is designed to be used in development, QA and production.

In Browser Widget

No backend required - easy to set up - perfect fit for development

Stagemonitor widget is a little stagemonitor icon, which is automatically injected in the monitored webpage (if activated). It offers to view the call tree of the request and notifies based on configurable thresholds, if the request was too slow or too many SQL statements were executed.

The widget supports the developer through instant feedback about poorly performing parts of the application.


The Metrics tab displays metrics collected by stagemonitor in tables and graphs. It is a lightweight and easy to use alternative to the grafana dashboards as it does not require you to install a database.

Call Tree View

This tab displays the method call tree of the current request including SQL statements to identify the bottlenecks of a request. The method call tree is collected by stagemonitor's low overhead profiler.

Request Trace

In this tab you can find detailed information about the request. This includes a breakdown of the page load time into network, server processing, DOM processing and page rendering time.

You can also see the execution time and count of database interactions.
Furthermore you can analyze the HTTP headers and find information about the device, browser and operating system the request was issued from.

Configuration Management done right

The stagemonitor widget includes a configuration tab in which you can reload an dynamically update stagemonitor's configuration and view the available configuration sources.

For each configuration option, you can view documentation, find out about the configuration source of the current value, see validation errors and save a new value to a arbitrary configuration source.

Analyze Requests

analyze errors in production/web analytics

Stagemonitor includes a Kibana dashboard that can be used to get detailed information about incoming requests. You don't need to set up logstash or parse any logs for that.

You want to know what the most common source of errors is, what the series of requests that lead to an error looked like or why a request was slow? This dashboard will give you the answers.

Powerful querying and filtering capabilities

Filter requests by queries or by selecting charts. You could use the query section to get details about requests that caused errors or were slow.

Detailed Request Traces

In this section, you can find out about the root cause of slow or failed requests by analyzing stack traces of exceptions, request headers and parameters. The request details also include information about the user's login name, ip, browser and operating system.

You can even analyze the method call tree including sql statements and parameters to identify what caused a request to be slow. The method call tree is collected by stagemonitor's low overhead profiler.

Cluster Monitoring

metrics of your whole cluster - perfect fit for operations

The stagemonitor monitoring agent tightly integrates with time series databases like Elasticsearch, Graphite and InfluxDB to store a long history of datapoints. Stagemonitor includes preconfigured Grafana dashboards that can be fully customized.

To support clustered environments, you can select the application, instance and host in each dashboard. If you don't select a instance and a host, you get aggregated metrics.

Stagemonitor includes the awesome Metrics library. You can use it to track additional metrics - either programmatically or declaratively by adding annotations.

Request Dashboard

The request dashboard gives you information about the statistical distribution of your page response times, the througput and error rate. You can also easily identify the requests with the highest response time, throughput and error rate.

Requests are grouped by use cases. Usecases are automatically detected if you use Spring MVC. For other technologies, you can group URLs by regular expressions.

Since version 0.8, stagemonitor features Real User Monitoring (RUM). That means, that you can select to either see the server time or total page load time in the request dashboard. Furthermore, you can find a breakdown of the page load time into network, server processing, DOM processing and page rendering time.

JVM Dashboards

Get information about the heap utilisation, garbage collection behaviour and CPU utilisation.

EhCache Metrics

Information about the hit-rate, cache size (in bytes), get performance, throughput and expiries of all caches.

Metrics about logging

Statistics about the frequency of logs. Optionally append the request-id, application name, instance name and host name to each log statement to easily filter relevant logs.

Server Metrics

In this dashboard, you can get information about the Server Thread Pool usage, the number of concurrent sessions, the load of your hosts and the number of online servers. You can group these metrics by instance or host.

DB Query Dashboard

The DB Query dashboard gives you information about the statistical distribution of your SQL statement execution times and the number of queries executed per second. It also lets you easily identify the slowest and most frequent SQL statements as well as the requests that issue the most SQL statements.