All Projects → inspectIT → Inspectit

inspectIT / Inspectit

inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Inspectit

Myperf4j
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
Stars: ✭ 2,281 (+344.64%)
Mutual labels:  monitoring, metrics, agent, apm, performance, performance-analysis, performance-metrics, performance-tuning
Scouter
Scouter is an open source APM (Application Performance Management) tool.
Stars: ✭ 1,792 (+249.32%)
Mutual labels:  monitoring, metrics, agent, apm, performance, performance-metrics
Stackimpact Go
DEPRECATED StackImpact Go Profiler - Production-Grade Performance Profiler: CPU, memory allocations, blocking calls, errors, metrics, and more
Stars: ✭ 276 (-46.2%)
Mutual labels:  monitoring, agent, performance-analysis, performance-metrics, performance-tuning
Stackimpact Java
StackImpact Java Profiler - Production-Grade Performance Profiler: CPU, locks, runtime metrics, and more
Stars: ✭ 7 (-98.64%)
Mutual labels:  monitoring, agent, performance-analysis, performance-metrics, performance-tuning
Stagemonitor
an open source solution to application performance monitoring for java server applications
Stars: ✭ 1,664 (+224.37%)
Mutual labels:  monitoring, metrics, apm, opentracing, performance
Goappmonitor
Golang application performance data monitoring.
Stars: ✭ 478 (-6.82%)
Mutual labels:  monitoring, agent, performance-analysis, performance-metrics, performance-tuning
Stackimpact Nodejs
DEPRECATED StackImpact Node.js Profiler - Production-Grade Performance Profiler: CPU, memory allocations, async calls, errors, metrics, and more
Stars: ✭ 46 (-91.03%)
Mutual labels:  monitoring, agent, performance-analysis, performance-metrics, performance-tuning
App perf
Open source application performance monitoring tool with emphasis on ease of setup and use. Providing similar functionality like NewRelic/AppNeta/Skylight etc.
Stars: ✭ 353 (-31.19%)
Mutual labels:  monitoring, metrics, apm, trace, performance
Amon
Amon is a modern server monitoring platform.
Stars: ✭ 1,331 (+159.45%)
Mutual labels:  monitoring, metrics, agent, performance
Sitespeed.io
Sitespeed.io is an open source tool that helps you monitor, analyze and optimize your website speed and performance, based on performance best practices advices from the coach and collecting browser metrics using the Navigation Timing API, User Timings and Visual Metrics (FirstVisualChange, SpeedIndex & LastVisualChange).
Stars: ✭ 4,255 (+729.43%)
Mutual labels:  monitoring, metrics, performance-analysis, performance-metrics
Pandora
A Manageable, Measurable and Traceable Node.js Application Manager represented by Alibaba powered by TypeScript
Stars: ✭ 3,084 (+501.17%)
Mutual labels:  monitoring, metrics, apm, opentracing
Spm Agent Nodejs
NodeJS Monitoring Agent
Stars: ✭ 51 (-90.06%)
Mutual labels:  monitoring, agent, apm, performance-metrics
Spm Agent Mongodb
Sematext Agent for monitoring MongoDB
Stars: ✭ 7 (-98.64%)
Mutual labels:  monitoring, metrics, agent, performance-metrics
Pinpoint
APM, (Application Performance Management) tool for large-scale distributed systems.
Stars: ✭ 11,883 (+2216.37%)
Mutual labels:  monitoring, agent, apm, performance
Sparklens
Qubole Sparklens tool for performance tuning Apache Spark
Stars: ✭ 345 (-32.75%)
Mutual labels:  performance, performance-analysis, performance-metrics, performance-tuning
Pinpoint C Agent
It is an agent written by C++, PHP, python languages. And we hope to support other languages by this agent. Until now, it supports [PHP],[C/C++] and [PYTHON].
Stars: ✭ 188 (-63.35%)
Mutual labels:  monitoring, agent, apm, performance
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (+287.13%)
Mutual labels:  monitoring, metrics, instrumentation, performance
Jaeger Ui
Web UI for Jaeger
Stars: ✭ 639 (+24.56%)
Mutual labels:  monitoring, apm, trace, opentracing
Opencensus Web
A stats collection and distributed tracing framework
Stars: ✭ 168 (-67.25%)
Mutual labels:  monitoring, metrics, instrumentation, trace
Javamelody
JavaMelody : monitoring of JavaEE applications
Stars: ✭ 2,486 (+384.6%)
Mutual labels:  monitoring, metrics, apm, performance
🔥 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

Build Status License

inspectIT

inspectIT

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.

For Web applications the tool integrates the End user monitoring using automatic JavaScript agent injection. This allows easy monitoring of the performance that real users are facing in the browser. In addition, the inspectIT can correlate all user actions in the browser to the backend traces, thus providing a complete picture on the user experience.

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.

Features

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
  • Browser End User Monitoring: automatic injection of a JavaScript agent into your application HTML code.
  • Trace Based
    • 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.
    • Support for browser-JVM communication: correlation between user actions in the browser and backend requests.
    • SDK which implements the OpenTracing.io API. All user spans are combined with inspectIT measurements in a single trace.
  • Variety of Information
    • 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.
  • Business Context
    • Have a view on your application's business transactions by using flexible business context definitions.
    • Monitor and analyze requests by the functional use-case.
  • Monitoring
    • Monitor your hardware metrics like cpu, memory or threads.
    • Monitor metrics exposed via JMX beans.
    • Integration with influxDB and Grafana for easy monitoring with pre-defined dashboards.
    • Simple e-mail alerting is possible on all long-term monitoring data.
  • Diagnosis Service for automatic performance problem detection.
  • RESTful API for automation and integration with other tools.
  • Usability at Its Best
    • Easy and transparent integration of the inspectIT agent in your application (compatible with Java 6, 7, 8, and 9).
    • Out-of-the-box profiles for a quick start.
    • Dynamic instrumentation - change measurement points on the monitored JVM without a need for restart.
    • Store, import and export detailed traces with all information instead of noting down which user-clicks led to a problem.
    • No more config-files! We have fully adaptable, graphical configuration interfaces for everything.
  • 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 medium number of agents.
  • Extendable system: Missing something? Write your own extensions.

End User Monitoring

⚠️ We recommend to try this feature on a system configuration in a safe environment first.

The inspectIT 1.8 line comes with a new feature: Browser End User Experience Monitoring (EUM). This feature allows you to measure the performance at the browser side of the end user, giving more detailed insights than the back-end instrumentation alone. This is done by automatically injecting a JavaScript agent into your applications HTML code, which in turn captures relevant metrics at the client-side and sends them back to inspectIT using AJAX Requests. Check the official feature documentation to help you started.

Tracing

OpenTracing Badge

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:

  • Java
    • Executor service (Java 6+)
  • HTTP
    • Apache HttpComponents Async Client (version 4.x)
    • Apache HttpComponents Client (version 4.x)
    • Java Servlet API (version 2.x & up)
    • Java URL Connection (Java 6+)
    • Jetty Http Client (versions 7.x & 8.x)
    • Spring Rest Template (version 3.x & 4.x)
  • JMS
    • Java Message Service API (version 1.x & up)

The OpenTracing.io API implementation is provided as a part of inspectIT's inspectit.agent.java.sdk project. Users of the OpenTracing.io API can easily use inspectIT as the implementation.

Automatic Performance Problems Detection

⚠️ Experimental

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.

Out-Of-The-Box Profiles

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:

  • JavaEE
    • Enterprise Java Beans (EJB)
    • Java Server Faces (JSF)
    • Java Transaction API (JTA)
    • Servlets API
    • WebServices
    • WebSockets
  • Java Persistence
    • JDBC
    • JPA
    • Hibernate
  • Remote Communication Tracing
    • HTTP
    • JMS
  • Others
    • Apache Struts
    • Apache MyFaces Trinidad
    • Executor service tracing

Supported Application Platforms

  • Glassfish
  • IBM WebSphere
  • Jetty
  • JBoss / Wildfly
  • Oracle Weblogic
  • Resin
  • Tomcat
  • ..
  • and any plain Java application

Project Structure

Project Description
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.

Related Projects

  • Experimental features and supporting components of inspectIT are located at inspectIT Labs
  • Our Docker integration projects are located at inspectIT Docker

Integration

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.

Getting Started

For an easy and quick start using inspectIT check out the following video resources.

alte

Download

Docker Pulls Docker Pulls Docker Pulls Docker Pulls Docker Pulls Docker Pulls

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.

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.

Awesome inspectIT List

You can find a lot more helpful resources in the inspectIT's awesome list.

Get in Touch

Twitter Account Gitter LinkedIn Group

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.

Documentation

We are running an Atlassian Confluence for all sorts of documentation (thanks to Atlassian for the free license): From end user documentation to the road-map.

Contribute

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

Developers

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.

Ticketing

We primarily use Atlassian JIRA for ticketing. But if you are in a hurry, please feel free to open a GitHub issue.

Licensing

inspectIT is licensed under Apache License version 2.0. Please see our licensing documentation for more details. (Note that releases up to 1.6.7 were licensed using AGPLv3)

Commercial Support

If you need the commercial support for the inspectIT please check the transparent package offering by NovaTec Consulting GmbH and feel free to contact us if you are interested.

Sponsoring

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.

Research / Further Readings

inspectIT is the base for the research project diagnoseIT, sponsored by German federal ministry of education and research with more than 500.000€.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].