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!
Integrability
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!
Done!
Now, check out the awesome data you're getting for free and see what your application is doing!
1
# Find the process ID of the JVM to which the agent should be attached to
2
#  ps aux | grep java
3
#  jps -lV # Requires an installed JDK
4
5
# Attach the latest Ocelot agent to your JVM
6
bash <(curl -s https://inspectit.github.io/inspectit-ocelot/attach.sh) <JVM_PID>
7
8
# See awesome OpenCencus metrics
9
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.
Role-based Access Control (RBAC)
Planned for Q2 2020
In order to use the configuration server and its web user interface properly in a multi-user environment, access and role management is required to prevent unauthorized changes to the agents' configuration files.
Configuration Versioning
Planned for Q3 2020
In larger environments where several users work in parallel, it can be helpful to know why a configuration is the way it is or who created it. By versioning the configuration files you not only have a history of it, but you can also track who made which changes.
Extended Configuration UI
Planned for Q3 2020
To avoid users having to learn the agent configuration in depth, we create an easy-to-use interface that makes it easy to configure the most commonly used features.
Dynamic Stacktrace Sampling
Planned for Q4 2020
Dynamic Stacktrace Sampling allows to trace long-running code without knowing the location in advance. It allows you to find out where your transactions spend most of their time without manually having to find a good instrumentation point!
OpenTelemetry Migration
Planned for Q4 2020
Since the OpenCensus project, which is used by the inspectIT Ocelot agent, has been migrated to the OpenTelemetry project, we would like to migrate the agent to the new project as soon as it is in a stable state, so that we can benefit from its new features and bug fixes.
Kubernetes (K8s) Operator
Planned for Q4 2020
In order to use the agent in a simple way with Kubernetes clusters, we build an operator, which can automatically itegrate the inspectIT Ocelot agent into the target applications.
Event Monitoring
Planned for Q1 2021
The agent is given the ability to create and collect events that can be used to analyze and track business processes, for example.
Automatic Agent Updates
Planned for Q2 2021
To ensure easy maintenance of the inspectIT Ocelot agents, the agent will be able to update itself - even during runtime of the target application!

Who Uses inspectIT