Operator: INDIVIDUAL STARTUP s.r.o. Company ID: 08949671 · VAT ID: CZ08949671 · Rybná 716/24, Staré Město, 110 00 Prague, Czech Republic
OT4J
One line in your JVM args. No SDK.

See where your Java
app spends its time.

Attach a small agent to your Spring app. We capture every HTTP request, every SQL query and every outbound call — and show you what's slow, what's failing, and where the N+1 queries hide. Your data, our infrastructure.

Free forever · Cloud from €5/month · no credit card for Free.

terminal
$ java \
  -javaagent:ot4j-agent.jar \
  -Dot4j.token=$OT4J_TOKEN \
  -Dot4j.service=checkout-api \
  -Dot4j.environment=prod \
  -jar your-spring-app.jar

[ot4j] Connected. Streaming to ot4j.com.
        Open the access link we sent you.
^C

Features

See into your JVM without changing a line of code

The agent instruments Spring requests, JDBC, Apache HttpClient, OkHttp and Elasticsearch. You sign in to our dashboard and see everything in one place.

SQL N+1 detection

For every request you see how many SQL queries ran and how often the same pattern repeats. Yellow badge means more than 2×, red 5+. The N+1 problem is visible at a glance.

Hot path — where the time goes

Periodic stack sampling builds a call tree. The dominant path is auto-expanded, so within a second you can tell which method burned most of the time.

Outbound HTTP

Spring RestTemplate, OkHttp, Elasticsearch — every outbound call with URL, method, status and duration. You can copy the request and response straight into your own curl.

Real-time overview

Requests per second, response time, heap usage, CPU. Sliding window, second-level granularity — anomalies pop out immediately.

Many apps, one view

Tag your instances with a service name and an environment (e.g. checkout-api / prod). Filter in the dashboard, share links to a specific request.

Safe and isolated

Every customer gets a private URL and token. Traffic between agent and cloud is encrypted. We don't share, sell or analyse your data beyond your own dashboard.

How it works

Three steps to live

STEP 1

Get the agent

Email info@ot4j.com and we'll send you ot4j-agent.jar. The Free plan needs no account, just the JAR.

STEP 2

Attach to your JVM

Add -javaagent and a service name. No code change, no new dependency in pom.xml.

STEP 3

Open the dashboard

Free: a local dashboard at localhost:9999. Cloud: the private URL we sent you.

~/spring-app
# Free — local, no account, last 2 minutes of history
java -javaagent:ot4j-agent.jar -jar your-spring-app.jar
# then open http://localhost:9999/

# Cloud — data goes to ot4j.com, 24h history, multi-instance
java -javaagent:ot4j-agent.jar \
     -Dot4j.token=$OT4J_TOKEN \
     -Dot4j.service=checkout-api \
     -Dot4j.environment=prod \
     -jar your-spring-app.jar
# then open the access link we emailed you

Who it's for

When OT4J pays off

"Something crashed at night and by morning we can't tell what."

Every captured request stays in the dashboard. Open it the next day and you see the SQL, the outbound calls and the hot path — and you know what hit you.

"Some endpoint is slow and we don't know why."

Click on a request and see how the time splits between SQL, HTTP and your own code. N+1 queries and repeated calls are flagged automatically.

"We don't have an APM but we need a basic view."

Setup takes five minutes. No instrumentation SDK, no annotations, no extra build pipeline. You see data right away.

"We have multiple services and environments."

Each instance gets a tag (service + environment) and the dashboard lets you filter. See the whole system or one service in one environment.

Pricing

Start free. Pay only when you want more.

No surprise charges. Price scales with the number of services you watch.

Free
€0
forever
  • Agent only — runs inside your app
  • Local dashboard at localhost:9999
  • Last 2 minutes of history
  • No cloud, no account
Get the agent
Recommended
Cloud
€5/month
per service × environment
  • Data in our cloud (EU)
  • 24 hours of history
  • Private URL + token
  • Filtering, shared links, hot path, N+1
  • Email support
Get started
Enterprise
Custom
SLA + longer retention
  • Everything from Cloud
  • 30+ days retention (negotiable)
  • SLA, priority support
  • Dedicated environment, on-premise option
Talk to us

Prices excl. VAT. Billed monthly per connected service × environment pair.
Example: checkout-api in prod + staging = 2 pairs = €10/month.

Try it on your app.

Start free with the local agent, or drop us a line — we can have you on Cloud in a few days.

For Cloud you'll receive an access link and a token. Free runs locally — no account required.

FAQ

Questions we often hear

Do we need to change any code? +

No. You add the agent to the JVM via the -javaagent flag and three system properties (token, service name, environment). No library in pom.xml, no annotations, no rebuild.

What's the performance overhead? +

By default we target under 1% CPU overhead. Measurement is inline (no large data transfers) and stack sampling can be turned off any time.

Which frameworks and versions are supported? +

Java 11 and up, Spring Boot 2 and 3 (Spring MVC). For outbound HTTP: Apache HttpClient, OkHttp, Elasticsearch RestClient. SQL: any JDBC driver. WebFlux is on the roadmap.

What happens to our data? +

Depends on the plan. Free never sends data anywhere — it stays in the JVM's memory for 2 minutes and never leaves your process. Cloud stores data in our EU infrastructure with a 24-hour retention. Enterprise can do longer retention or on-premise. We don't share, sell or analyse your data beyond your own dashboard.

What if we lose connection to your cloud? +

The agent keeps a small in-memory queue. When the link comes back it ships whatever it managed to retain. During longer outages the oldest records are dropped — your traffic isn't affected.

Are sensitive payloads (request bodies) sent to you? +

By default we send URLs, headers, durations and status codes. HTTP request/response bodies and SQL parameters are opt-in — turn them on only when you want, off whenever you don't. You stay in control.

Who's behind the project? +

OT4J is built and operated by INDIVIDUAL STARTUP s.r.o., based in Prague, Czech Republic. Reach us at info@ot4j.com.