inspectIT is the leading Open Source APM (application performance management) tool for monitoring and analyzing your Java(EE) software applications.
Various sensors capture end-to-end information for every request from the end user, to the business tier all the way to the backends. inspectIT is based on an application-centric, business-focused approach, where each technical request is mapped to an application and to a business use-case. With inspectIT you always know about the health of your software and can easily analyze any problems that arise.
We hope that together we can build an alternative to the (great!) commercial tools available so that it is up the end user to choose his tooling. Let's make inspectIT even more awesome!
|See all requests||Trace-based analysis||Remote traces||Details (SQL)|
|Details (Exceptions)||Sensor configuration||Business context||Alerting|
|Monitoring dashboards||EUM Summary||EUM Single Page||EUM 3rd Party Content|
- Detailed trace representation (invocation sequence) for every request containing all interactions with the systems.
- Support for inter-JVM communication based on HTTP and JMS: each trace shows interaction with all correlated JVMs.
- Automatic enrichment of every trace with HTTP information, SQL queries, exceptions, parameters and many more.
- Detailed exception capturing allows to analyze functional problems.
- Drill down into one invocation sequence to find and analyze problematic requests.
- Drill up from an problem within an invocation sequence and find business-related information like the URL the request was sent to.
- Aggregated views for every captured metric, e.g. aggregated SQL overview shows metrics aggregated by SQL query.
- Talk in invocation sequences! Store, import and export detailed traces with all information instead of noting down which clicks lead to a problem.
- Monitor your hardware metrics like cpu, memory or threads.
- Monitor metrics exposed via JMX beans.
- Dynamic instrumentation - change measurement points on the monitored JVM without a need for a restart.
- Have a view on your applications and business transactions by using flexible business context definition.
- Integration with influxDB and Grafana for easy monitoring with pre-defined dashboards.
- Simple e-mail alerting is possible on all long-term monitoring data.
- No more config files! We have graphical configuration interfaces for everything.
- Provides SDK that implements opentracing.io API. All user spans are combined with inspectIT measurements in a trace.
- Easy and transparent integration of the inspectIT agents in the application.
- Reproducing problems is a thing of the past! You already have a trace representation that you can analyze.
- Optimized for low overhead.
- Production-proof: Used for >8 years at our customers and during performance firefights.
- One server is enough for most environments supporting a big number of agents.
- RESTful API for automation and integration with other tools.
- Fully adaptable user interface.
- Extensible system: Missing something? Write your own extensions.
End user monitoring
inspectIT already ships with out-of-the-box instrumentations for commonly used Java technologies. If your technology is missing, you can easily instrument it manually (or request a new profile). We currently support:
- Enterprise Java Beans (EJB)
- Java Server Faces (JSF)
- Java Transaction API (JTA)
- Servlets API
- Java Persistence
- Remote communication
- Apache Struts
- Apache MyFaces Trinidad
Supported application platforms
- IBM WebSphere
- Oracle Weblogic
- JBoss / Wildfly
- and any plain java application
|inspectit.agent.java||Agent for instrumenting and monitoring Java 6+ applications.|
|inspectit.agent.java.sdk||Java SDK that implements opentracing.io API.|
|inspectit.server||Server component know as Central Measurement Repository (CMR).|
|inspectit.server.diagnosis||Component for automatic performance problems diagnosis (see diagnoseIT project).|
|inspectit.shared.all||Classes shared between all projects.|
|inspectit.shared.cs||Classes shared between server and UI projects.|
|inspectit.ui.rcp||inspectIT user interface based on Eclipse RCP.|
- Experimental features and supporting components of inspectIT are located at inspectIT Labs
- Our Docker integration projects are located at inspectIT Docker
The integration of inspectIT in your application is completely transparent, you do not have to change a single line of code. The only thing you have to do is to place our agent with your application and integrate it into your startup script.
The integration is as simple as adding the following to the startup of your application.
-javaagent:[INSPECTIT_AGENT_HOME]/inspectit-agent.jar -Dinspectit.repository=[REPOSITORY_IP]:[REPOSITORY_PORT] -Dinspectit.agent.name=[AGENT_DISPLAY_NAME]
The end user documentation provides in-depth documentation on the installation of inspectIT for all supported platforms. If you have further questions please get in touch with us.
You can get inspectIT in three ways:
Try it out with a demo application
You can easily test the inspectIT features by starting out the demo based on the Spring Petclinic application. The repository inspectit-labs/spring-petclinic-microservices contains start-up and docker scripts that integrate the inspectIT into the famous Spring demo app. Also check the inspectit-labs/workshop for the in-detail step-by-step workshop that will walk you through using inspectIT with the demo application.
Get in touch
We are interested in your feedback. Come chat with us and other users on Gitter. Visit the forum or simply drop us a line. You also might want to follow us at Twitter @inspectIT_apm or join discussions in our LinkedIn group.
You do not have to be a programmer to contribute to inspectIT, but if you are you are certainly welcome. Here is a short list of how you can contribute. Please see our Contribution Documentation
- Improve the documentation
- Let us know about bugs
- Request new features
- Prioritize through voting
- Fork and improve
If you want to fix Bugs or implement Features on your own, you're very welcome to do so! For the easiest start, you just need to follow our Development Environment Documentation for installing Eclipse with all projects and settings already pre-configured via the new official Oomph installer.
We primarily use Atlassian JIRA for ticketing. But if you are in a hurry, please feel free to open a GitHub issue.
inspectIT is mainly driven by NovaTec Consulting GmbH, a German consultancy firm that specializes in software performance. Sponsoring a feature in inspectIT is always possible and welcome. Just get in touch with us through Sponsor a feature.