Unlocking observability for your Java monitoring
A zero-configuration Java agent for collecting performance, tracing and business data from your application.

What is inspectIT Ocelot

inspectIT Ocelot is a Java agent that allows you to extract any kind of data and information out of your Java application and consume the data using a big variety of established monitoring tools such as Prometheus, Zipkin, Grafana and many, many more. You can collect for example performance data such as response times and hardware metrics or tracing data that shows you in detail which methods are executed, i.e. what the application actually does or where the errors occur.

Even more: you can even use inspectIT Ocelot to collect business data - you may for example want to know the average shopping cart value of your online store, the country with the highest turnover or any other concerns related to your business cases.

For the agent, we use a zero-configuration approach which does not mean that you cannot configure anything - on the contrary: the agent provides a very powerful and sophisticated configuration interface that allows you to configure basically everything and adapt the agent's behaviour to your needs.

Zero-configuration means that the agent is shipped with a meaningful default configuration that is suitable for most applications and basic usage.

What You Can Do With inspectIT Ocelot

Distributed Tracing
Track and analyze requests throught all your systems and see what's going on!
Context-Sensitive Metrics
Collect any kind of metrics and vizualize them depending on their context.
Dependency Discovery
Discover which services and applications are interacting with each other!
Dynamic Instrumentation
Dynamically add, modify and remove the agent's data collection logic!
Runtime Attachment
Attach, upgrade and remove the agent during runtime without any restart!
Using open standards, you can connect and use a variety of proven tools!

Store Data Wherever You Want

As we build upon OpenCensus, you can use its data exporters, allowing you to use any backend for data storage for which an exporter exists. Furthermore, once your traces and metrics have been collected you can simultaneously send and store them in different backends.
Currently many backends and vendors are supported out-of-the-box but you can also easily implement custom exporters allowing you to send the traces and metrics to any backend you want.
Supported Backends for Tracing Data
Supported Backends for Metric Data
Some metric backends requires a transfer tool like Telegraf.

Start Using inspectIT Ocelot

Turn the Lights on
Monitoring and observing a Java application with inspectIT Ocelot requires just one small step.
All you have to do is to execute the provided attach script using the target JVM's process ID!
Now, check out the awesome data you're getting for free and see what your application is doing!
# Find the process ID of the JVM to which the agent should be attached to
#  ps aux | grep java
#  jps -lV # Requires an installed JDK
# Attach the latest Ocelot agent to your JVM
bash <(curl -s https://inspectit.github.io/inspectit-ocelot/attach.sh) <JVM_PID>
# See awesome OpenCencus metrics
wget -qO- localhost:8888
If you don't have a Java application for testing, just download and spin-up our provided and preconfigured demo application.
Check out the documentation for a detailed getting started section and for more information about the usage and powerful configuration capabilities of the agent!

Future Roadmap

The following list is only a selection of some of the major features, that we plan to implement in the near future. You can get a more complete overview of all planned features and the current work on the project's issue trackers on Github.
Agent Live-Debugging
Planned for Q3 2022
The agent offers the possibility to create powerful and highly customized configurations. To get a better understanding of the active configuration, an overview and advanced debugging feature, including a downloadable support archive, will be provided.
Synchroneous Instrumentation
Planned for Q4 2022
Currently, the inspectIT Ocelot agent only supports asynchroneous instrumentation. We want to add the possibility to instrument synchroneously. This way, we can guarantee that the agents starts before the application, making it more usable for short living and batch applications.
Agent Commands: gRPC Protocol
Planned for Q1 2023
The agent commands used to communicate between the Configuration Server and the inspectIT Ocelot agent currently use the HTTP protocol. In future, we will move to the gRPC protocol, so no polling is needed anymore.
OpenTelemetry Migration: Step 2
Planned for Q2 2023
The inspectIT Ocelot agent uses OpenTelemetry with the opentelemetry-opencensus-shim under the hood sinve v2.0.0. As a next step towards the migration to OpenTelemetry, we would like to remove the shim and use OpenTelemetry natively, so that we can benefit even more from new features.
Event Monitoring
Planned for Q2 2023
The agent is given the ability to create and collect events that can be used to analyze and track e.g. business processes.

Who Uses inspectIT