JVM Monitoring for Production Servers
perfino is a powerful JVM monitoring solution that gives you maximum insight with minimum overhead.
Why perfino?
Micro-service friendly licensing
One license to monitor them all: With perfino you don't have a cap on the number of monitored JVMs or any other metric,
such as recorded business transactions.
No matter how large your system gets or how many micro-services you want to monitor, your perfino license has you covered.
Immediately see what's wrong
When you log into perfino, the dashboard shows you if everything is OK - or if something is going wrong. perfino gives you
fine-grained control over what level of performance is acceptable for your application.
The dashboard is where you start to drill down into the more detailed data views.
Show calls between VMs
perfino can monitor business transactions that span multiple VMs. A call in the web layer that goes on to an EJB server
and further to a web service - in perfino these operations are connected, even when you do method-level sampling.
The call graph not only shows you the big picture of what is happening right now, but also what has happened in the past.
React to off-nominal conditions
When something is seriously wrong, you want to take action: Create alerts, send emails or gather more detailed data.
In perfino, you use triggers and actions to configure your emergency response strategies.
Realizing a scenario like "When a business transaction hangs, take a thread dump and send it to my inbox" is very easy in the
perfino UI.
Telemetries everywhere
Telemetries in perfino capture important scalar values in the monitored VMs, like the number of database operation per minute.
As sparklines in the dashboard and VMs view, they give you an instant appreciation of the current trends, in their full display
they go back in time to the very beginning. Telemetry data is never discarded, only converted to higher resolutions.
Ultra-flexible business transactions
perfino automatically detects a wide range of business transactions from subsystems like servlet containers,
EJBs or RMI calls. In addition, it offers you several ways to make any method call into a business transactions.
Whether you explicitly select POJO methods in the perfino UI, tell perfino about an important annotation or use the API
to create transactions in your own code depends on what is most practical for you.
Call tree of business transactions
Transactions in perfino are organized into a cumulated call tree - just as you know it from your favorite profiler.
The level of detail is up to you - it depends on what you configure as business transactions.
Policy violations like very slow transactions are shown separately in the call tree, so you can analyze them in isolation.
perfino also correlates business transactions on the server with page load times in the browser.
Database performance and bottlenecks
Database operations like JDBC statements, or queries to mongoDB and other NoSQL databases are first class citizens in perfino.
When you ask the question "Which SQL query is the slowest in my application?", perfino delivers the answer together with
cumulated backtraces pointing back to the business transactions that are responsible for the queries.
Method level sampling
To investigate the internal call structure and the method level hot spots of business transactions, perfino performs periodic
method level sampling on a per-transaction basis.
For slow and very slow transactions you can configure automatic method level sampling. In many cases, these samples give you an
immediate explanation for performance problems that are not related to databases.
Historical comparisons
Being able to compare performance between two points in time is important, especially for agile release managements.
With perfino, you can look back indefinitely to compare selected business transactions or entire call trees - your data is cumulated
to larger time intervals as time goes by. And comparison functionality is built directly into the views that you use for viewing the data.
Cross-over to profiling
Defense in depth is a strategy that applies to many situations in life.
When your business is on the line, you sometimes need every tool there is and that is why perfino can bring in native
JVMTI sampling and ultimately even prepare a VM for a JProfiler connection. So that when you need the full capabilities
of a profiler, it's at your fingertips.