an open source solution to application performance monitoring for java server applications
You can deploy stagemonitor on your own datacenter. Nothing will ever be sent to the outside world.
Stagemonitor uses the Open Tracing API in order to correlate requests in a distributed system.
Stagemonitor is designed to be used in development, QA and production.
Define thresholds for your metrics. Manage subscriptions and alerting channels.
Stagemonitor is successfully used in production as well as development, providing valuable insights constantly whilst imposing very low overhead.
Write your own plugins, use 3rd party plugins, track your own metrics and create or customize dashboards.
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 methods that were invoked during 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 in real time. It is lightweight and easy to use as it does not require you to install a database or other visualization tools.
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.
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.
The stagemonitor widget includes a configuration tab in which you can reload and 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 an arbitrary configuration source.
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.
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.
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.
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.
In order to monitor clustered environments thoroughly you are able to select data based on application, instance and host or aggregated visualisations. 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.
The request dashboard gives you information about the statistical distribution of your response times, the throughput and error rate.
Requests are grouped by use cases, in order to identify e.g. the use cases with the highest response times. Groupings are automatically detected if you are using popular frameworks like Spring MVC or JAX-RS. Other technologies are supported as well by manual configurations.
In addition to statistics for HTTP requests, you can analyse JDBC queries, AJAX requests, page load times and others.
Get information about the heap utilisation, garbage collection behaviour and CPU utilisation.
Information about the hit-rate, cache size (in bytes), get performance, throughput and expiries of all caches.