|🔥 inspectIT OpenCensus Edition has been released 🔥|
|The inspectIT OCE project provides an improved Java agent newly developed from scratch focusing on scalability, compatibility, flexibility and interaction with other awesome open source tools and frameworks.
🔸 Check it out: inspectIT OpenCensus Edition
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!
|📣 Road-Map Announcement|
|The inspectIT team would like to inform the public and our open source community about the future plans for our beloved APM tool and the planned roadmap. You can read more in our public announcment.|
|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|
⚠️ We recommend to try this feature on a system configuration in a safe environment first.
inspectIT provides a set of remote sensors in order to create traces and correlate calls made between JVM nodes in your application. These traces can provide an end-to-end view on the user request execution, even they are spanning over multiple JVMs. In addition, if end-user-monitoring is active inspectIT is capable of correlating browser side actions, like page loads or clicks, to resulting back-end requests (screenshot).
The remote tracing is done in inspectIT as per OpenTracing.io specification, with a similar data model based on spans. Furthermore, inspectIT combines the captured spans with the invocation sequences created on each JVM and, thus, is able to provide not only the landscape of the interacting JVMs but also provide detailed information on the invocation execution during complete traces. This includes all the data that is captured as a part of invocation sequence, SQL statements, exceptions, method calls, etc. Visit the official feature documentation to help you get started.
With a set of default inspectIT profiles you get automatic tracing for following technologies and libraries without a need to change your source code nor dependencies. Currently, we support:
As s result of the diagnoseIT research project, inspectIT's version line 1.8 offers an integrated diagnosis service for automatic performance problems detection. This service can analyze requests lasting longer than a user-defined baseline and provides insights on where the performance problems can be. An overview of found problems is provided as a part of the monitoring dashboards. Visit the official feature documentation to help you started.
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:
|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.|
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.
For an easy and quick start using inspectIT check out the following video resources.
You can get inspectIT in three ways:
⚠️ Mac OSX users: please read the Running on MacOS to find out how to start the inspectIT UI on Mac.
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.
You can find a lot more helpful resources in the inspectIT's awesome list.
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
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.